随笔分类 - 设计模式
摘要:定义: 将抽象部分与它的实现部分分离, 使他们都可以独立地变化。这里的抽象部分和实现部分不是我们通常认为的父类与子类、接口与实现类的关系,而是组合关系。桥梁模式由4种角色组成:抽象角色: 它定义了抽象类的接口而且维护着一个指向实现角色的引用。精确抽象角色: 实现并扩充由抽象角色定义的接口。实现角色: 给出了实现类的接口,这里的接口与抽象角色中的角色可以不一致。具体实现角色: 给出了实现角色定义接口的具体实现。简单理解: 就是一个抽象接口A里有另一个抽象接口B作为成员变量,通过这个B的方法去实现A本身的方法。 各自有各自的实现类。参考代码://抽象部分(前端)的抽象角色class Abstrac
阅读全文
摘要:适配器是什么? 我理解的是就像生活中的插口转换器, 本来是USB接口的,你要想使用直流电,就得接上一个转换器。用书上的例子举例: 比如,在一个画图的小程序中,你已经实现了绘制点、直线、方块等图形的功能。而且为了让客户程序在使用的时候不用去关心它们的不同,还使用了一个抽象类来规范这些图形的接口。现在你要来实现圆的绘制,这时你发现在系统其他的地方已经有了绘制圆的实现。在你庆幸之余,发现系统中已有的方法和你在抽象类中规定的方法名称不一样!这可怎么办?修改绘制圆的方法名,就要去修改所有使用它的地方;修改你的抽象类的方法名,也要去修改所有图形的实现方法以及已有的引用。还有其它的方法没有?那就是适配...
阅读全文
摘要:原型(Prototype)模式属于对象创建模式,是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。先让我们来看看原型模式的结构吧。1) 客户角色:让一个原型克隆自己来得到一个新对象。2) 抽象原型角色:实现了自己的clone 方法,扮演这种角色的类通常是抽象类,且它具有许多具体的子类。3) 具体原型角色:被复制的对象,为抽象原型角色的具体子类。按照定义客户角色不仅要负责使用对象,而且还要负责对象原型的生成和克隆。这样造成客户角色分工就不是很明确,所以我们把对象原型生成和克隆功能单拿出来放到一个原型管理器中。原型管理器维护了已有原型的清单。客户在使用时会向原型管理器发出请求,而且
阅读全文
摘要:建造模式的定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。(将构造复杂对象的过程和组成对象的部件解耦)建造模式的组成: 抽象建造者角色(规范产品对象的各个组成成分的建造), 具体建造者角色, 指导者角色(调用具体建造者角色以创建产品对象), 产品角色。首先客户程序创建一个指导者对象,一个建造者角色,并将建造者角色传入指导者对象进行配置。然后,指导者按照步骤调用建造者的方法创建产品。最后客户程序从建造者或者指导者那里得到产品。在以下我们用媒体实例简单说明建造模式,便于理解。 首先,有个公共的父类MediaItem,然后他衍生出来的Chapter,Article,
阅读全文
摘要:单例模式是最基础的模式,记得上学的时候,老师介绍的也就是单例,工厂的简单应用。今天学到了一个新的知识点,往常概念里为了保证是单例,必须要构造函数设置为private,这样才能保证在其他地方不被实例化出对象。可是private的类不能被继承,这点从来没考虑到。举3个例子看看代码,基本就能明白基础的单例模式的意义。public class Singleton {//在自己内部定义自己一个实例//注意这是private 只供内部调用private static Singleton instance = new Singleton();//如上面所述,将构造函数设置为私有private Singlet
阅读全文
摘要:看了百度文库里的“深入浅出设计模式”,觉得写得挺通俗易懂的,新手上路,能够理解一些。不过希望自己能够举一反三再多思考思考。工厂模式分为3类:1.简单工厂模式(simple factory):由“工厂类角色”,“抽象产品角色”,“具体产品角色”组成。2.工厂方法模式(factory method):由“抽象工厂角色”,“具体工厂角色”,“抽象产品角色”,“具体产品角色”3.抽象工厂模式(abstract factory):最为抽象,最具一般性的。由抽象工厂角色”,“具体工厂角色”,“抽象产品角色”,“具体产品角色”。介绍个产品族的概念,比如车子,可分成跑车,商务车等类别。跑车就可以理解成一个产品
阅读全文

浙公网安备 33010602011771号