设计模式_李建忠_笔记
文章平均质量分 71
hjf19790118
这个作者很懒,什么都没留下…
展开
-
Singleton单件(创建型模式)
singleton --- 独生子,独生生活 --- 保证一个类仅有一个实例,并提供一个该实例的全局访问点模式分类从目的来看 --- 创建型(Creational)模式:负责对象创建 --- 结构型(Struc转载 2011-10-16 15:02:50 · 239 阅读 · 0 评论 -
Facade外观模式(结构型模式)
系统的复杂度需要开发一个坦克模拟系统用于模拟坦克车在各种环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。 public class Wheel { public void WAction1() { }转载 2011-10-16 15:15:13 · 306 阅读 · 0 评论 -
Mediator中介者(行为型设计模式)
依赖关系的变化 动机(Motivation)在软件构建过程中,经常会初现多个uixiang互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,我们可使用一个"中介对象"转载 2011-10-16 15:19:40 · 368 阅读 · 0 评论 -
Abstract Factory 抽象工厂(创建型模式)
new 的问题常规的对象创建方法: Road road = new Road(); -- 实现依赖,不能应对“具体实例化类型”的变化。解决思路: -- 封装变化点--哪里变化,封装哪里 -- 潜台词转载 2011-10-16 15:04:25 · 257 阅读 · 0 评论 -
Builder生成器(创建型模式)
如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正...分析,构建房屋的组成结构是稳定的,但是房屋的窗口,门的风格可能并不固定动机(Motivation)在软件系统中,有时候面临着"一个复杂对象"的创建工作,转载 2011-10-16 15:06:41 · 289 阅读 · 0 评论 -
Factory Method工厂方法(创建型模式)
Factory Method --- 工厂方法从耦合关系谈起耦合关系直接决定着软件面对变化时的行为--模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改--模块与模块之间的松耦合使得软件面对变化时,转载 2011-10-16 15:08:08 · 299 阅读 · 0 评论 -
Command命令(行为型模式)
耦合与变化耦合是软件不能抵御变化灾难的根本性原因,不仅实体对象与实体对象之间存在耦合关系,实习对象与行为操作之间也存在耦合关系。动机(Motivation)在软件构建过程中,"行为请求者"与"行为执行者"通常呈现一种"紧耦合"。但在某些场合--转载 2011-10-16 15:17:53 · 353 阅读 · 0 评论 -
Observer观察者(行为型模式)
发布-订阅模型 动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系"---一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。转载 2011-10-16 15:21:25 · 303 阅读 · 0 评论 -
设计模式总结 By李建忠老师
创建型模式" Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。" Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。" 如果遇到“易变类”,起初的设计通常从F转载 2011-11-13 13:51:36 · 8114 阅读 · 1 评论 -
Prototype原型(创建型模式)
依赖关系的倒置抽象不应该依赖于实现细节,实现细节应该依赖于抽象 动机(Motivation)在软件系统中,经常面临着"某些结构复杂的对象"的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。转载 2011-10-16 15:09:31 · 254 阅读 · 0 评论 -
Iterator迭代器(行为型模式)
集合内部结构与外部访问动机(Motivation)在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同事这种"透明遍历"也为"同一种算法在多种集合对象上进行转载 2011-10-16 15:20:38 · 262 阅读 · 0 评论 -
Template Method模板方法(行为型模式)
(虚函数的晚绑定,简单但是重要)变与不变变化---是软件设计永恒的主题,如何管理变化带来的复杂性?设计模式的艺术性和复杂度就在于如何分析,并发现系统中的变化点和稳定点,并使用特定的设计方法来应对这种变化。动机(Motivation)在软转载 2011-10-16 15:17:07 · 282 阅读 · 0 评论 -
Adapter适配器(结构型模式)
结构型模式 --- 处理类组合的问题适配,即在不改变原有实现基础上,将原先不兼容的接口转换为兼容的接口。 动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将"一些现存的对象"放在新的环境中应用,但是新环境要求的接口转载 2011-10-16 15:11:14 · 292 阅读 · 0 评论 -
Bridge桥接模式(结构型模式)
抽象不应该依赖于实现细节,实现细节应该依赖于抽象 抽象B --- 稳定实现细节b --- 变化 问题在于如果抽象B由于固有的原因,本身也不稳定,也有可能变化、怎么办?举例来说假如我们需要开发一个同时支持PC和手转载 2011-10-16 15:12:18 · 336 阅读 · 0 评论 -
Proxy代理(结构型模式)
直接与间接人们对于复杂的软件系统常常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活、满足特定需求的解决方案。 动机(Motivation)在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全转载 2011-10-16 15:16:09 · 265 阅读 · 0 评论 -
Interpreter解释器(行为型模式)
动机(Motivation)在软件构建中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的变成方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则情况下,然后构建一个解释器(解释器并不一样)来解释这样的转载 2011-10-16 15:18:47 · 319 阅读 · 0 评论 -
State 状态(行为型设计模式)
对象状态影响对象行为对象拥有不同的状态,往往会行驶不同的行为...动机(Motivation)在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为可能完全不同转载 2011-10-16 15:22:06 · 327 阅读 · 0 评论 -
创建型模式总结
·Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建模式解决的都是new所带来的耦合关系(易变类与客户程序的关系)。·Abstract Factory,Builder,Factory Method都需要一个额外的工厂类来负责实例化"易变转载 2011-10-16 15:10:26 · 233 阅读 · 0 评论 -
Composite组合(结构型模式)
对象容器的问题在面向对象系统中,我们常会遇到一类具有"容器"特征的对象---即它们在充当对象的同时,又是其他对象的容器。 代码 public interface IBox { } public class SingleBox :转载 2011-10-16 15:13:32 · 285 阅读 · 0 评论 -
Decorator装饰(结构型模式)
子类复子类,子类何其多假如我们需要为游戏开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合下为其为其增加一种或多种功能:比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。 //抽象坦克 public abstract cla转载 2011-10-16 15:14:28 · 309 阅读 · 0 评论 -
概念_对象_模式
对象从概念层面---对象是拥有责任的抽象从规格层面---对象是一系列可以对其他对象使用的公共接口从语言实现层面来看---对象封装了代码和数据怎么设计?1.遵循面向对象设计的原则2.熟悉一些典型的设计模式设计原则--->设计模式 ·针对接口编程,而不是针对实现编程 ---客户(调用程序的程转载 2011-10-16 15:01:10 · 256 阅读 · 0 评论