设计模式
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。
十期刘杰
这个作者很懒,什么都没留下…
展开
-
设计模式之观察者模式与事件委托
1、观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 说简单点就是一个事物由于某个因素的变化而去提醒别的事物,让它们做出相应的改变。就像是猫叫了,老鼠跑了,人醒了。因素是猫叫,而猫这个实体去提醒老鼠和人,做出的反映分别是老鼠跑了,人醒了。代码如下: //抽象类观察者 abstract原创 2014-03-17 15:04:43 · 1221 阅读 · 11 评论 -
设计模式之建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。即组装一个完整的产品需要不同的部件,而由于部件的不同又可以组装出不相同的产品。 举个简单的例子:就像组装电脑,需要用显示器,主机,键盘,和鼠标。组装过程中如果显示器我分别用普通显示器和液晶显示器则会出现不相同的两个成品。如下: abstractclass Computer { public abst原创 2014-03-07 11:39:47 · 1133 阅读 · 13 评论 -
设计模式之外观模式
外观模式:为子系统中的一组接口提供一个一直的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。即通过一个中类来完成客户端的请求。拿机房收费系统的上机过程来说,上机需要显示上机者的信息,填写上机状态表,填写上机记录表。而使用者不需要知道这些功能是怎么实现的,只需要通过界面操作就可以完成其功能。这个过程中界面就相当于外观。具体代码如下: //显示上机信息 classShowIn原创 2014-03-05 10:25:00 · 1157 阅读 · 16 评论 -
设计模式之模板方法模式
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。也就是说模板方法模式通过把不变的行为搬移到超类,去除子类中的重复代码,为代码复用提供了一个很好的平台。 就像我们平时参加的考试,每个人一张试卷,试卷上面的试题都是一样的,唯独可能不一样的地方就是每个人填写的答案。如果在PC环境中,出现每个人的试卷都原创 2014-03-03 19:10:02 · 1189 阅读 · 14 评论 -
设计模式之原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。说白了就是将对象复制一遍,在将其赋给一个新的对象变量。由于这种方法太常用,所以.NET在System命名空间中提供了ICIoneable接口,其中就只有唯一的一个方法Clone(),实现了这个接口就可以完成原型模式。举个简单的例子:毕业找工作需要投递简历的,而复制则是一个非常方便的方法。转成代码则如下: class R原创 2014-02-28 20:51:02 · 1251 阅读 · 14 评论 -
简单工厂 VS 工厂方法
1、工厂方法模式介绍: 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到子类。 还以简单工厂模式中的例子为例:将简单工厂模式中的工厂TV类提出来作为一个公共的接口,而对应的各个功能类各建立一个具体的工厂去实现这个接口。如下: Interface IFactory //工厂接口 { FunctionChoic原创 2014-02-26 14:09:55 · 1191 阅读 · 12 评论 -
设计模式之代理模式
代理模式,为其它对象提供一种代理以控制对这个对象的访问。代理是真实对象的代表。说的简单点就是通过一个中介为我们完成某件事。举个简单的例子:就拿我们租房这件事来说,我们想要租房首先需要找到中介,由中介为我们联系房主,帮我们完成租房这一过程。用代码表示如下: class House-owner { //房东类,用于定义和获取不同房东的名字 privatestring name; publi原创 2014-02-16 10:33:02 · 1223 阅读 · 14 评论 -
设计模式之装饰模式
装饰模式:指在不必改变原类文件和使用继承的情况下动态的扩展一个对象的功能。简单一点说,装饰模式就是动态的给一个对象添加一些额外的职责,即对一个对象进行包装,使其成为一个看着顺眼的整体。即将每个要装饰的功能放在单独的类中,而提供一个类对要装饰的类的对象进行包装。 比如新买的房子,里面什么也没有,想要住进去首先需要装修,添加家电等,这个过程整体可以称为装饰,等最后放到我们眼前的就是一个完整而原创 2014-02-09 11:04:50 · 1337 阅读 · 16 评论 -
设计模式之策略模式
何为策略,就是可以实现目标的方案集合。而完成一项任务有不同的方式,每一种方式称为一个策略。策略模式就是定义一系列算法,将每一个算法封装起来,并让他们可以相互替换。很简单的一个例子:年底移动公司推出很多的活动,比如说:存话费赠食用油,交话费赠话费,买手机赠话费 等等。推出这些个活动目的就只有一个,刺激消费为公司创造利润,而我们可以将这些个活动当做一个一个的策略,如下: abstract clas原创 2014-02-05 10:36:59 · 3071 阅读 · 24 评论 -
设计模式之简单工厂模式
所谓简单工厂模式其实就是把一些类进行包装,封装在一起,用到哪一个类的时候在实例化哪一个类。举个简单的例子就像家中的电视机,电视机上面有很多按钮,其中有菜单,有调节屏幕明亮程度的,有调节音量大小的。这些每一个按钮都会完成一个功能,而将这些封装起来的就是电视机,利用函数,通过参数的不同而返回不同的实例化对象。用代码表示则如下: //功能选择类 ClassFunctionChoice { Publi原创 2014-02-04 14:33:12 · 1729 阅读 · 20 评论