`
文章列表
定义 【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。 抽象化:存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。 实现化:抽象化给出的具体实现,就是实现化。 脱耦:所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。 ...
定义 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 UML  抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。(最简单的比如打印日志) 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。   实例 代理商,本身不生成产品,但是从厂家拿产品卖个用户。起到媒介作用。 java的代理模式 简单demo: /** * 抽象主题,定义 ...
装饰者模式 定义 动态地将责任附加到对象上,若要扩展功能功能装饰者提供了比继承更有弹性的替代方案。 UML (1)抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。(2)具体构件(Concrete Co ...
定义 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。   UML Facade:这个外观类为子系统提供一个共同的对外接口 Clients:客户对象通过一个外观 ...
定义 将一个类的接口,转换成客户期望的另一个类的接口。适配器让原本接口不兼容的类可以合作无间。说通俗点其实就是一个东西不适用的时候给它包裹一层让他能够适配使用又不改变他本身。   分类 (1)类适配器: 当客户在接口中定义了他期望的行为时,我们就可以应用适配器模式,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配。   public interface Target { /** * 这是源类Adaptee也有的方法 */ public void sampleOperation1(); /** * ...
原型模式 定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 浅克隆  对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象. 深克隆 对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制.   uml 客户(Client)角色:客户端类向原型管理器提出创建对象的请求 抽 ...
建造者模式 定义 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂 ...
单例模式 定义 在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 要点有三个; 一是某个类只能有一个实例; 二是它必须自行创建这个实例; 三是它必须自行向整个系统提供这个实例。   应用与实例 单例模式的写法其实有很多种,饿汉式、懒汉式、线程安全式等等。上网一搜都根据性能等问题写出了各种写法。对单例模式的要求一般也就如下一些要求。 1.最基本要求:每次从getInstance()都能返回一个且唯一的 ...
创建型模式的比较:单例模式和原型模式比较好比较,一个用来创建单例一个用来复制对象,但是工厂方法模式和抽象工厂模式还有建造者模式比较不好区分,工厂方法是生产一种产品,这个产品有不同类型,用的是继承的方式,子类型继承自同一父类型。但是抽象工厂用的是组合的方式生产一系列产品,工厂需要实例化,而建造者模式可能更注重细节,一个产品可能有不同的建造方法。导致产品的形态不一,生成顺序不一,但是产品的本质都是同一个类。    
工厂模式 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。如果对象的初始化的过程很长很复杂,放在构造器中是很危险的,就像很多鸡蛋放到一个篮子里。所以要把对象的创建过程抽象独立出来。工厂模式定义了一个创建对象的接口,但由于子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到了子类。 工厂模式分类 1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特 ...
Global site tag (gtag.js) - Google Analytics