上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: 一、引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再使用状态者模式来解决上一篇文章中提出的问题。二、状态者模式的介绍 每个对象都有其对应的状态,而每... 阅读全文
posted @ 2015-08-31 22:22 Cat Qi 阅读(770) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。二、 中介者模式的介绍2.1 中介者模式的定义 从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ... 阅读全文
posted @ 2015-08-31 22:21 Cat Qi 阅读(2026) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。二、 观察者模式的介绍2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端,... 阅读全文
posted @ 2015-07-24 11:25 Cat Qi 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。... 阅读全文
posted @ 2015-07-15 23:52 Cat Qi 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 一、引言在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模式。下面就具体介绍下外观模式。二、外观模式的详细介绍2.1 定义外观模式提供了一个统一的接口... 阅读全文
posted @ 2015-07-02 15:58 Cat Qi 阅读(1186) 评论(0) 推荐(0) 编辑
摘要: 一、引言提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同... 阅读全文
posted @ 2015-07-02 10:14 Cat Qi 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 1.深拷贝与浅拷贝 拷贝即是通常所说的复制(Copy)或克隆(Clone),对象的拷贝也就是从现有对象复制一个“一模一样”的新对象出来。虽然都是复制对象,但是不同的 复制方法,复制出来的新对象却并非完全一模一样,对象内部存在着一些差异。通常的拷贝方法有两种,即深拷贝和浅拷贝,那二者之间有何区别呢?M... 阅读全文
posted @ 2015-07-01 09:29 Cat Qi 阅读(1097) 评论(0) 推荐(0) 编辑
摘要: 也许会有人这样解释C# 中浅拷贝与深拷贝区别: 浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝。不能说它完全错误,但至少还不够严谨。比如:string 类型咋说?其实,我们可以通过实践来寻找答案。首先,定义以下类型:int 、string 、enum 、struct 、class 、int[ ] ... 阅读全文
posted @ 2015-07-01 09:12 Cat Qi 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最后介绍值类型和引用类型,并说明一些有关它们的重要原理。 最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。声明变量的内... 阅读全文
posted @ 2015-06-30 11:29 Cat Qi 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 简单说来原型模式就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。 原型模式UML图: 原型模式的基本代码结构:namespace ConsoleApplicati... 阅读全文
posted @ 2015-05-18 15:38 Cat Qi 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 设计模式的实现并不难,对着例子来,很快就能敲出来。但是,在什么情况下用什么设计模式,这是个问题,最近总结了一下:设计模式用法单例保证类的实例只有一个简单工厂根据参数创建对应具体子类策略算法、规则的封装、传入具体调用,调用具体算法装饰者动态对一个对象进行增属性、调用方法等操作,链式操作,随意组合。... 阅读全文
posted @ 2015-05-18 11:17 Cat Qi 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表2.9所示。运算符号意义运算对象类型运算结果类型对象数实例~位逻辑非运算整型,字符型整型1~a&位逻辑与运算2a & b|位逻... 阅读全文
posted @ 2015-05-12 11:27 Cat Qi 阅读(2132) 评论(0) 推荐(2) 编辑
摘要: 今天在项目中遇到按位或组合权限串的问题:首先每一个权限数都是2的N次方数如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ...如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了。如: purview = k2|k3; // 赋给添加和删除权限当需要判断... 阅读全文
posted @ 2015-05-12 11:24 Cat Qi 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: 前言前期准备在VS2012中新建一个控制台应用程序(我的命名是ReflectionStudy),这个项目是基于.net 4.0。接着我们打开Program.cs文件,按照如下在Program中写一个我们自己的类: 1 public class RefClass 2 {... 阅读全文
posted @ 2015-04-10 01:04 Cat Qi 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 1)形参形参顾名思义就是形式上的参数,不是实际的参数,它代替实际传入方法的值。在方法体代码中代表了值本身参与运算。形参定义于参数中,它不同于方法体内局部变量,因为是一个变量,在它的作用域内不允许存在一个同名的局部变量,不管他们的类型是否相同,都是不允许出现同名的。看下面的代码示例:1 //这其中的s... 阅读全文
posted @ 2015-04-10 00:09 Cat Qi 阅读(7957) 评论(0) 推荐(0) 编辑
摘要: 本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据 阅读全文
posted @ 2015-04-03 15:00 Cat Qi 阅读(30929) 评论(11) 推荐(31) 编辑
摘要: msdn 解释如下:“协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型。“逆变”则是指能够使用派生程度更小的类型。解释的很正确,大致就是这样,不过不够直白。直白的理解:“协变”->”和谐的变”->”很自然的变化”->string->object :协变。“逆变”->”逆常的变”->”不... 阅读全文
posted @ 2015-04-01 10:03 Cat Qi 阅读(17465) 评论(6) 推荐(20) 编辑
摘要: 工厂方法模式(Factory Method),定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。 工厂方法模式在实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还存在,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。... 阅读全文
posted @ 2015-03-26 22:20 Cat Qi 阅读(2061) 评论(0) 推荐(0) 编辑
摘要: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的优点: (1)、职责清晰,真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的... 阅读全文
posted @ 2015-03-26 22:17 Cat Qi 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰者模式隐含的是通过一条条装饰链去实现具体对象,每一条装饰链都始于一个Componet对象,每个装饰者对象后面紧跟着另一个装饰者对象,而对象链终于ConcreteComponet... 阅读全文
posted @ 2015-03-26 22:16 Cat Qi 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之... 阅读全文
posted @ 2015-03-26 22:15 Cat Qi 阅读(3092) 评论(0) 推荐(1) 编辑
摘要: 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 使用场景:工厂类负责创建的对象比较少;客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;由于简单工厂很容易违反高内聚责任分配原则,因此一般... 阅读全文
posted @ 2015-03-26 22:14 Cat Qi 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。一、单例模式 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的... 阅读全文
posted @ 2015-03-26 22:13 Cat Qi 阅读(412) 评论(0) 推荐(1) 编辑
摘要: [C#泛型系列文章]目录导航第一部分:O'Reilly 出版的《C# Cookbook》泛型部分翻译第一回:理解泛型第二回:获取泛型类型和使用相应的泛型版本替换ArrayList第三回:使用相应的泛型版本替换Stack和Queue第四回:链表的实现和可空类型第五回:反转SortedList里的内容第... 阅读全文
posted @ 2015-03-20 16:10 Cat Qi 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一、泛型入门:我们先来看一个最为常见的泛型类型List的定义(真正的定义比这个要复杂的多,我这里删掉了很多东西)[Serializable]public class List : IList, ICollection, IEnumerable{ public T this[int index]... 阅读全文
posted @ 2015-03-20 15:42 Cat Qi 阅读(322) 评论(0) 推荐(0) 编辑
摘要: const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写。那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型:静态常量(compile-time constants)和动态常量(runtime const... 阅读全文
posted @ 2015-03-19 14:52 Cat Qi 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 8天玩转并行开发 8天玩转并行开发——第一天 Parallel的使用 8天玩转并行开发——第二天 Task的使用 8天玩转并行开发——第三天 plinq的使用 8天玩转并行开发——第四天 同步机制(上) 8天玩转并行开发——第五天 同步机制(下) 8天玩转并行开发——第六天 异步编程模型 8天玩转并 阅读全文
posted @ 2015-03-04 15:34 Cat Qi 阅读(457) 评论(0) 推荐(1) 编辑
摘要: 在上一讲介绍了使用lock来实现线程之间的同步。实际上,这个lock是C#的一个障眼法,在C#编译器编译lock语句时,将其编译成了调用Monitor类。先看看下面的C#源代码: Code highlighting produced by Actipro CodeHighlighter (freew... 阅读全文
posted @ 2015-02-13 11:02 Cat Qi 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用。让我们先看看如下的代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->classIn... 阅读全文
posted @ 2015-02-13 11:00 Cat Qi 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。 在C#中可以通过Syste... 阅读全文
posted @ 2015-02-12 15:54 Cat Qi 阅读(266) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页