![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Design Patterns
王晓斌
十年苦烦剧,一念愈倾仰
展开
-
【设计模式基础】结构型模式 - 2 - 外观(Facade)
1. 模式意图原创 2013-12-10 00:04:11 · 724 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 总结
1. 总结原创 2013-12-19 00:44:03 · 669 阅读 · 0 评论 -
【设计模式基础】行为模式 - 1 - 观察者(Observer)
1. 模式意图原创 2014-01-14 23:37:24 · 1314 阅读 · 1 评论 -
【设计模式基础】行为模式 - 3 - 职责链(Chain of responsibility)
1. 模式意图使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,知道链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配职责。纯的与不纯的职责链模式:一个纯的职责原创 2014-01-23 23:47:51 · 868 阅读 · 0 评论 -
【设计模式基础】行为模式 - 4 - 命令(Command)
1. 模式意图命令模式又称为动作(Action),事务(Transaction)。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装;命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。每一个命令都是一个操作:请求的一方发出请求要求执原创 2014-01-24 01:02:13 · 803 阅读 · 0 评论 -
【设计模式基础】行为模式 - 2 - 访问者(Visitor)
1. 模式意图原创 2014-01-19 22:04:20 · 986 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 1 - 适配器(Adapter)
1. 模式意图将一个类的接口,转换成客户期望的另一个接口。Adapter模式使得原来由于接口不兼容不能一起工作的那些类可以一起工作。2. 模式定义对象适配器:使用组合3. 模式实现4. 模式应用原创 2013-12-08 15:49:07 · 588 阅读 · 0 评论 -
【设计模式基础】行为模式 - 6 - 模板方法(Template Method)
1. 模式意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中去。 Template Method使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。模板方法模式实际上是所有模式中最常用的几个模式之一。模板方法中的方法可以分为两大类:模板方法(Template Method) 和 基本方法(Primitive Method):模板方法{ ...原创 2014-02-15 20:04:36 · 776 阅读 · 0 评论 -
【设计模式基础】行为模式 - 5 - 策略(Strategy)
1. 模式意图策略模式别名Policy。策略模式的意图是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得他们可以相互替换。策略模式使得算法可以在不影响客户端的情况下发生变化。使用策略模式可以把行为和环境分割开来。环境类负责维持和查询行为类,各种算法则在具体策略类中提供。由于算法和环境独立开来,算法的增减、修改都不会影响环境和客户端。当出现新的变化时,只需要实原创 2014-02-12 02:22:00 · 919 阅读 · 0 评论 -
【设计模式基础】行为模式 - 7 - 迭代器(Iterator)
1. 模式意图原创 2014-02-18 22:34:46 · 713 阅读 · 0 评论 -
【设计模式基础】创建型模式 - 总结
1. 总结单件简单工厂工厂方法抽象工厂生成器原型原创 2014-01-05 09:57:42 · 586 阅读 · 0 评论 -
【设计模式基础】创建型模式 - 6 - 原型(Prototype)
1. 模式意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。2. 模式定义Client:客户类提出创建对象的请求;Prototype:给出所有的具体类型所需的接口;Concrete Prototype:被复制的对象,需要实现抽象原型所要求的接口;3. 模式实现3.1 Java中的原型方法Java的所有类都是从java.lan原创 2014-01-05 09:48:16 · 839 阅读 · 0 评论 -
【设计模式基础】创建型模式 - 5 - 生成器(Builder)
1. 模式意图将一个复杂对象(Product)的构建过程与它的表示相分离,使得同样的构建过程可以创建不同的表示。生成器模式使用的对象:在有些情况下,一个对象会有一些性质:在他么没有恰当的值之前,对象不能作为一个完整的产品使用。例如,一个电子邮件有发件人地址、收件人地址、主题、内容、附件等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。在有些情况下,一个独享的原创 2014-01-05 05:32:04 · 886 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 3 - 装饰者(Decorator)
1. 模式意图动态地给一个对象添加一些额外的职责;Decorator模式相比生成子类更为灵活;2. 模式定义3. 模式实现4. 模式应用4.1 Java IO原创 2013-12-11 01:59:35 · 746 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 4 - 桥接(Bridge)
1. 模式意图将抽象的部分与它的实现部分分离,使它们都可以独立地变化。2. 模式定义Abstraction: 定义抽象类的接口;维护一个指向Implementor类型对象的指针;RefinedAbstracion: 扩充由Abstraction定义的接口;Implementor:原创 2013-12-15 02:08:41 · 795 阅读 · 0 评论 -
【设计模式基础】创建型模式 - 1 - 单件(Singleton)
1. 模式意图保证类仅有一个实例,并提供一个访问它的全局访问点。2. 模式定义Singleton: 定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作;可能负责创建它自己的唯一实例;客户只能通过Singleton的Instance操作访问一个Singleton的实例。3. 模式实现3.1 Java实现3.2原创 2013-12-30 09:38:22 · 868 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 5 - 组合(Composite)
1. 模式意图将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。组合模式让我们能用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合结构,我们能把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别。示例1:多级树形菜单示例2:文件和文件夹目录示例原创 2013-12-17 01:55:00 · 952 阅读 · 0 评论 -
【设计模式基础】创建型模式 - 2 - 抽象工厂(Abstract Factory)
1. 模式意图提供一个创建一系列相关或相互依赖的对象的接口,而无需指定它们具体的类。为了方便引进抽象工厂模式,引入一个概念:产品族(Product Family),是指位于不同产品等级结构,功能相关联的产品组成的家族,如图:上图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所处的等级结构,就可以唯一的确定这个产品。引进原创 2013-12-31 15:56:48 · 923 阅读 · 0 评论 -
【设计模式基础】创建型模式 - 3 - 简单工厂(Simple Factory)
1. 模式意图简单工厂根据提供给它的数据,返回可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。(简单工厂实际上不是GoF设计模式中的一个)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅是消费对象。但系统扩展困难,一旦添加新产品就不得不修改工厂逻辑。2. 模式定义原创 2013-12-31 23:55:48 · 753 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 6 - 享元(Flyweight)
1. 模式意图运用共享技术有效地支持大量细粒度的对象;如想让某个类的一个实例能用来提供许多“虚拟实例”,就是用享元模式;享元的优点: 减少运行时对象实例的个数,节省内存;将许多“虚拟”对象的状态集中管理;享元的用途和缺点:当一个类有许多的实例,而这些实例能被同一个方法控制的时候,我们就可以使用享元模式;享元模式的缺点在于,一旦实现了它,那么单个逻辑实例将无原创 2013-12-17 02:23:12 · 859 阅读 · 1 评论 -
【设计模式基础】创建型模式 - 4 - 工厂方法(Factory Method)
1. 模式意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例原创 2014-01-01 01:33:30 · 827 阅读 · 0 评论 -
【设计模式基础】结构型模式 - 7 - 代理(Proxy)
1. 模式意图2. 模式定义3. 模式实现4. 模式应用原创 2013-12-18 23:47:46 · 738 阅读 · 0 评论 -
【设计模式基础】行为模式 - 8 -状态(State)
1. 模式意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎是修改了它的类。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的对象。这样的对象的状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。适用性:一个对象的行为取决于它的状态,原创 2014-03-11 04:38:39 · 848 阅读 · 0 评论