博客专栏  >  编程语言   >  设计模式学习之路

设计模式学习之路

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

关注
4 已关注
27篇博文
  • 设计模式中类的关系

    在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另...

    2015-12-16 00:01
    357
  • 23种设计模式(23)_行为型_访问者模式(Vistor Pattern)

    定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式。符合单一职责原则:凡是适用访问者模式的场景中,元素类中需要封装在访问者中的...

    2015-12-27 16:35
    446
  • 23种设计模式(22)_行为型_责任链模式(Chain of Responsibility Pattern)

    定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。责任链模式与if…else…相比,他的耦合性要低一些...

    2015-12-27 16:45
    386
  • 23种设计模式(21)_行为型_策略模式(Stragety Pattern)

    定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。策略模式的主要优点有:策略类之间可以自由切换,由于策略类实现自同一个抽象,所以他们之间可以自由切换。易于扩展,增加一个新的策略对策略模...

    2015-12-27 16:54
    486
  • 23种设计模式(20)_行为型_状态者模式(State Pattern)

    状态模式——允许一个对象在其内部状态改变时自动改变其行为,对象看起来就像是改变了它的类。状态者模式的主要优点是:将状态判断逻辑每个状态类里面,可以简化判断的逻辑。当有新的状态出现时,可以通过添加新的状...

    2015-12-27 18:13
    465
  • 23种设计模式(19)_行为型_解释器模式(Interpreter Pattern)

    定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。解释器是一个简单的语法分析工具,它最显著的优点就是扩展性,修改语法规则只需要修改相应的非终结符就可以了...

    2015-12-27 17:29
    483
  • 23种设计模式(18)_行为型_备忘录模式(Memento Pattern)

    定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。备忘录模式的优点有:当发起人角色中的状态改变时,有可能这是个错误的改变,我们使...

    2015-12-27 17:39
    384
  • 23种设计模式(17)_行为型_中介者模式(Mediator Pattern)

    定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们...

    2015-12-27 15:57
    509
  • 23种设计模式(16)_行为型_观察者模式(Observer Pattern)

    定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。观察者与被观察者之间是属于轻度的关联关系,并且是抽象耦合的,这样,对于两者来说都比较容易进行...

    2015-12-27 16:22
    428
  • 23种设计模式(15)_行为型_迭代器模式(Iterator Pattern)

    定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。迭代器模式的优点有:简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游标来取得,但用户...

    2015-12-27 17:25
    428
  • 23种设计模式(14)_行为型_命令模式(Command Pattern)

    定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式的封装性很好:每个命令都被封装起来,对于客户端来说,需要什么功能...

    2015-12-27 16:39
    520
  • 23种设计模式(13)_行为型_模版方法模式(Template Method)

    定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。这就是模版方法模式。大部分刚步入职场的毕业生应该都有类似B的经历。一个复杂的任务,由公...

    2015-12-26 18:37
    462
  • 23种设计模式(12)_结构型_代理模式(Proxy Pattern)

    代理模式——就是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。例如电脑桌面的快捷方式...

    2015-12-28 12:10
    497
  • 23种设计模式(11)_结构型_享元模式(Flyweight Pattern)

    享元模式——运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量相似类的开销,在软件开发中如果需要生成大量细粒度的类实例来表示数据,如果这些实例除了几个参数外基本上都是相同的,这时候就可以使用...

    2015-12-27 20:42
    440
  • 23种设计模式(10)_结构型_外观模式(Facade Pattern)

    外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观...

    2015-12-27 20:37
    440
  • 23种设计模式(9)_结构型_组合模式(Composite Pattern)

    组合模式的优点:组合模式使得客户端代码可以一致地处理对象和对象容器,无需关系处理的单个对象,还是组合的对象容器。将”客户代码与复杂的对象容器结构“解耦。可以更容易地往组合对象中加入新的构件。缺点:使得...

    2015-12-27 18:38
    448
  • 23种设计模式(8)_结构型_装饰者模式(Decorator Pattern)

    装饰者模式优点:装饰这模式和继承的目的都是扩展对象的功能,但装饰者模式比继承更灵活。通过使用不同的具体装饰类以及这些类的排列组合,设计师可以创造出很多不同行为的组合。装饰者模式有很好地可扩展性。缺点:...

    2015-12-27 18:33
    403
  • 23种设计模式(7)_结构型_桥接模式(Bridge Pattern)

    桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化。对于上面的问题中,抽象化也就是RemoteControl类,实现部分也就是On()、Off()、NextChannel()等这样的方法(即遥控器...

    2015-12-27 18:28
    554
  • 23种设计模式(6)_结构型_适配器模式(Adapter Pattern)

    适配器模式——把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式有类的适配器模式和对象的适配器模式两种形式,下面我们分别讨论这两种形式的...

    2015-12-27 18:22
    649
  • 23种设计模式(5)_创建型_原型模式(Prototype Pattern)

    用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,特...

    2015-12-26 17:59
    485
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部