设计模式
文章平均质量分 78
我的这些系列博客主要通过对大话设计模式的书,举例并配有代码,形象生动,而且很简单易懂,读者读了可以很容易理解。
dandanPMO
这个作者很懒,什么都没留下…
展开
-
简单工厂、工厂方法、抽象工厂模式
最近一直再将设计模式,于是趁热打铁,对这三种设计模式做一个总结。 首先我先用一句话总结一下这三个模式:简单工厂是一个工厂只能造一种奔驰,工厂方法是一个工厂可以造多种车,比如劳斯莱斯、奥迪等,而抽象工厂是说工厂不光可以造越野式奔驰,还可以造家用式奔驰、还有商用式奔驰。 那么究竟简单工厂是什么呢?为什么它不是23的设计模式中的一个?原创 2015-08-08 10:03:46 · 1068 阅读 · 10 评论 -
设计模式之面向对象基础
最近看设计模式,这本书我特别喜欢,内容也很好理解,读起来有些上瘾,哈哈,一开始看了看面向对象基础,之前接触过面对对象基础,对面向对象三大特性有了进一步的理解,下面做个总结: 1、封装 概念:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装。 理解:就像一个大盒子原创 2014-02-10 16:24:04 · 1544 阅读 · 26 评论 -
设计模式之简单模式与策略模式
最近在学习简单工厂模式与策略模式时,发现他们有很多相同之处,他们都是通过多态来实现不同子类的选取,比较难分辨,于是做了一下总结。 简单工厂模式用于比如算法之于加减乘除、水果之于苹果梨香蕉、文具之于笔尺,这些例子的共同特点就是具体、数量有限,不涉及复杂的算法,简单工厂模式只是解决了对象的创建问题,工厂类中封装了所有的选择过程,如果对象要增加、减少、变化,就要改动工厂,以至于代码的重写量原创 2014-02-12 20:59:48 · 1551 阅读 · 13 评论 -
设计模式之代理模式
代理模式,我想大家一听表面的意思能得到一些信息,就是代理工作,为什么会产生这种模式呢?因为它可以使面向对象的复用性和灵活性增强。用一个很形象的例子来说明一下,比如说一张支票或银行汇票是对一个账户上资金的代理,支票能代替现金购买,最终能控制访问开证人账户上的现金,如果我们拿几车现金去购买东西,岂不是很费力,而用一张小小的支票代理就完全搞定了。 下面是代理模式的结构图:原创 2014-02-13 20:23:21 · 1355 阅读 · 13 评论 -
设计模式之装饰模式
装饰模式,动态的给一个对象添加一些额外的职责,就增加功能而言,装饰模式比生成子类更为灵活。这种模式可以有效的将类的核心职责和装饰功能区分开来。原创 2014-02-15 14:02:16 · 1301 阅读 · 13 评论 -
设计模式之工厂方法模式
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 产生:说到工厂模式,我想大家就能想到简单工厂模式,由于在简单工厂模式中当需要扩展功能时就需要修改原类,这违背了开放-封闭原则,而工厂方法模式则将类的实例化延迟到子类,避免了类的修改,下面是两种模式结构图: 1、简单工厂模式结构图:原创 2014-02-15 16:06:01 · 1311 阅读 · 19 评论 -
设计模式之建造者模式与工厂方法模式
建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式结构图: 产品类(Product):一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实原创 2014-02-16 15:53:35 · 2624 阅读 · 16 评论 -
设计模式之观察者模式与事件委托
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自己更新自己。 观察者结构模式图: 结合例子: static void Main(string[] args) { //老板dandan原创 2014-02-16 21:36:55 · 3151 阅读 · 17 评论 -
设计模式之备忘录模式
备忘录模式: 在不破坏封装性的前提下,铺货一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 备忘录模式结构图: Originator(原生者): 需要被保存状态以便恢复的那个对象。原创 2014-02-18 15:02:29 · 1276 阅读 · 17 评论 -
设计模式之部分-整体模式
组合模式: 是将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。组合是对象的集合,而其中的任何一个对象又可能是一个组合,或者是一个简单的对象。在树形结构中,访问组合中所有的对象要求有一个简单的单一访问接口,但同时要求能够区分开节点和叶子。在构造组合的时候,我们需要决定哪个节点是元素哪个是叶子。在这里我们可以原创 2014-02-18 21:36:44 · 2307 阅读 · 16 评论 -
设计模式之单例模式
单例模式: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量是使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法即时让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。 结构图:原创 2014-02-19 20:18:05 · 1271 阅读 · 16 评论 -
设计模式之访问者模式
访问者模式: 表示一个作用于某对象结构中的各元素的操作。它使你在不改变各元素的类的前提下定义作用于这些元素的新操作。 理解: 在这个对象结构中只有男人和女人,将Action抽象类作用于这两个元素,而Action里可以增加、删除任何操作,比如成功、失败、恋爱,而这些作用之间是没有影响的,符合开-闭原则,这样就将数据结构原创 2014-02-25 17:19:39 · 1277 阅读 · 20 评论