设计模式学习笔记
文章平均质量分 63
自己在学习《Head First Design Pattern》一书中的学习总结,与大家一同分享设计模式的实质!
卡尔曼和玻尔兹曼谁曼
面朝大海,春暖花开
展开
-
状态模式
状态模式定义: 英文定义:The State Pattern allows an object to alter its behavior when its internal state changes. The object will appear to change its class. 中文定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当原创 2015-07-20 21:49:57 · 903 阅读 · 0 评论 -
23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2015-04-21 22:29:31 · 865 阅读 · 0 评论 -
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】转载 2014-11-18 10:33:04 · 627 阅读 · 1 评论 -
享元模式
享元模式定义 英文定义:A flyweight is an object that minimizes memory use by sharing as much data as possible with other similar objects 中文定义:享元模式运用共享技术有效地支持大量细粒度的对象。 享元模式UML图(来自Google图片) 抽象享元(Flyweight)角原创 2015-07-23 22:24:02 · 1490 阅读 · 0 评论 -
模板方法模式
模板方法模式的定义《Head First Design Pattern》中的英文定义:The Template Method defines the skeleton of an algorithm in a method, deferring some steps to subclasses. Template Method lets subclasses redefine certain st原创 2015-07-21 21:55:05 · 1173 阅读 · 0 评论 -
迭代器模式
现在很多高级语言本身就支持迭代器。我们在不知不觉地已经使用迭代器很久了。 迭代器模式定义: 英文定义:The Iterator Pattern provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation. 中文定义原创 2015-07-18 21:23:58 · 1014 阅读 · 0 评论 -
命令模式
首先来看命令模式(Command Pattern)的定义: 《Head First Design Pattern》中的定义是:The Command Pattern encapsulates a request as an object, thereby letting you parameterize other objects with different requests, queue or原创 2015-07-18 11:45:11 · 1143 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本由于接口的不兼容而不能一起工作的那些类可以一起工作。 下面是适配器模式的类图(来自百度百科): 可以看到适配器类Adapter类的作用就是将“被适配者”类Adaptee的接口转换成“目标”类原创 2015-05-19 21:09:48 · 981 阅读 · 0 评论 -
依赖倒转原则(笔记整理)
已经是2个月没有写过博客了吧,打开自己的博客,突然有种亲切感。给老板干活的日子很苦,原创 2014-06-08 14:42:32 · 1174 阅读 · 0 评论 -
面向对象五大设计原则
这是学习《大化设计模式》的笔记,对设计原则的整理。单一职责原则(Single Responsibility Principle,SRP),就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受意想不到的破坏。开放-封闭原则(The Op原创 2014-02-21 16:25:53 · 1856 阅读 · 0 评论 -
代理模式
什么是代理模式?在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。代理模式(Proxy Pattern)定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做Proxy或Surroga原创 2014-01-03 15:57:07 · 1108 阅读 · 0 评论 -
装饰模式
装饰模式是一种用于替代继承的技术,它通过一种无需定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入装饰类,在装饰类中即可以调用被装饰类的方法,还可以定义新的方法,以便扩充类的功能。装饰模式降低了系统的耦合度,可以动态增加或删除对象的职责,并使得需要装饰的具体构件类和具体装饰类可以独立变化,增加新的具体构件类和具体装饰类都非常方便。装饰模式(Deco原创 2014-01-03 18:58:53 · 1326 阅读 · 0 评论 -
策略模式
策略模式定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换,策略模式让算法独立于使用它的客户而独立变化。The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algo原创 2014-02-21 15:02:33 · 1187 阅读 · 0 评论 -
工厂方法模式
工厂方法模式定义工厂方法模式(Factory Method)定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式类图工厂方法模式角色与结构抽象工厂(Factory)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。具体工厂(ConcreteFactory)角色:原创 2014-03-01 11:14:55 · 1331 阅读 · 0 评论 -
工厂方法模式和抽象工厂模式
首先看两者模式的UML图:工厂方法模式抽象工厂模式两者共同点:两种设计模式属于创建型模式,它提供了一种创建复杂对象的最佳方式。不同点:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂只能创建一类产品的实例,而抽象工厂模式的具体工厂类可以创建多类产品的实例。每一个模式都是针对一定问题的解决方案,工厂方原创 2015-01-23 22:36:20 · 752 阅读 · 0 评论 -
简单工厂模式
简单工厂模式的定义:专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。(Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常他根据自变量的不同返回不同类的实例。简单工厂模式实质是由一个工厂类根据传入的参量动态决定应该创建出哪一个产品类的实例。简单工厂模式实际上不属于23个GOF模式原创 2014-02-20 00:19:30 · 1100 阅读 · 0 评论 -
观察者模式
《Head First Design Pattern》一书中对观察者模式的定义如下: The Observer Pattern defines a one-to-many dependency objects so that when one object changes state, all of its dependents are notified and updated automatic原创 2015-04-09 22:02:45 · 1229 阅读 · 3 评论 -
单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,属于创建型模式。 单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的使用场景: 比如要求产生唯一序列号; 比如创建的对象需要消耗的资源过多,如 I/O 与数据库的连接等。 单例模式的特点:①构造函数是私有的;②单例类只能有一个实例。其实②是①的结果。通常可以使用下面的几种方式创建单例模式原创 2015-04-21 23:28:32 · 991 阅读 · 0 评论 -
建造者模式
定义:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 (separate the construction of a complex object from its representation so that the same construction process can create different representation原创 2015-04-22 23:54:58 · 1207 阅读 · 1 评论