
设计模式
文章平均质量分 69
jefferent2008
这个作者很懒,什么都没留下…
展开
-
设计模式(12)——代理模式
1. 定义 代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替...原创 2011-08-15 15:18:06 · 97 阅读 · 0 评论 -
设计模式(10)——组合模式
1. 定义 组合模式:将对象组织到树结构中,可以用来描述整体与部分的关系。组合模式可以使客户端将单纯元素与复合元素同等看待。 要点: (1) 组合模式以不遵守单一责任原则换取透明性,让Client将组合和叶节点一视同仁。 (2) 在实现组合模式时,有很多设计上的折衷。要根据需求平衡透明性和安全性。 (3) 有时候系统需要遍历一个树枝构件...原创 2011-08-11 12:33:58 · 180 阅读 · 0 评论 -
设计模式(9)——迭代器模式
1. 定义 迭代器模式:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 2. 类图及描述 迭代器模式由以下角色组成: 1) 迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。 2) 具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历...原创 2011-08-11 11:38:22 · 106 阅读 · 0 评论 -
设计模式(8)——模板方法模式
1. 定义 模板方法模式-在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。2. 类图及描述图 模板方法模式类图3. 应用场景及优缺点 模板方法模式中的方法: 模板方法:定义在AbstractClass中,形成算法的骨架 基本方法: 1....原创 2011-08-10 15:45:21 · 101 阅读 · 0 评论 -
设计模式(7)——适配器模式和外观模式
1. 定义 假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口,不同于旧厂商的接口。如果你不想改变现有的代码,也不能改变厂商的代码,那么你该如何解决这个问题。方法其实很简单,就是写一个类,将新厂商的的接口转成你所期望的接口。如图: 图 适配器模式 适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得...原创 2011-08-08 19:18:01 · 118 阅读 · 0 评论 -
设计模式(6)——命令模式
1. 定义 有时候我们需要对方法进行封装,通过对这些封装的方法进行调用,我们可以很好的处理一些事情。比如,记录日志,或者重复使用这些封装实现撤销功能。 命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。2. 类图及描述3. 应用场景及优缺点(1)队列请求 想象有一个工作队列;你在...原创 2011-08-05 16:53:14 · 93 阅读 · 0 评论 -
设计模式(5)——单例模式
1. 定义 有一些对象其实我们只需要一个,比方说:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表(registry)的对象、日志对象,充当打印机、显卡等设备的驱动程序的对象。事实上,这类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,例如:程序的行为异常、资源使用过量,或者是不一致的结果。因此,我们设计这种类时必须确保只有一个实例,单件模式...原创 2011-08-05 11:36:52 · 90 阅读 · 0 评论 -
设计模式(4)——工厂模式和抽象工厂模式
1. 定义 工厂方法模式定义了一个创建对象对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。2. 类图及描述 工厂方法模式类图 抽象工厂模式类图 3. 应用场景及优缺点 工厂模式与抽象工厂的区别:工厂方法模...原创 2011-08-02 15:53:53 · 92 阅读 · 0 评论 -
设计模式(3)——装饰者模式
1. 定义 The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. (装饰者模式可以动态地给一个对象...原创 2011-07-31 17:16:35 · 86 阅读 · 0 评论 -
设计模式(2)——观察者模式
1. 定义 The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. (观察者模式定义了对象间的一种一对多...原创 2011-07-31 12:39:17 · 83 阅读 · 0 评论 -
设计模式(1)——策略模式
1. 定义 The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.(策略模式定义了一...原创 2011-07-29 15:48:25 · 83 阅读 · 0 评论 -
设计模式(11)——状态模式
1. 定义 状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 要点: (1)策略模式和状态模式是双胞胎,它们有相同的类图,但是它们的意图不同。策略模式是围绕可以互换的算法来成功创建业务的,然而状态模式是通过改变对象内部的状态来帮助对象控制自己的行为. (2)Context将与状态相关的操作委托给当前的Concrete State对象处理。 ...原创 2011-08-12 12:25:26 · 81 阅读 · 0 评论