生成器模式也叫建造者模式,一般是用来构造复杂对象的一种模式.client(客户)-director(指导者)-builder(构造者)-product(产品). 生成器模式能帮助构建设计部件与表现的各种组合的对象.否则知道构建对象所有细节的director可能会变成一个庞大的“神”类.但是在做应用的时候一般不会遇到如此复杂的类(请求?),只有在做游戏时,构造涉及各种特征的角色的时候,应该好好使用该模式. 例子: 一个追逐游戏,假定有两个角色,敌人和游戏者.这两个角色有一些基本trait,如力量s…
一 什么是原型模式?(what) 有些对象的创建代价过大或过于复杂,要是可以重建相同的对象并作轻微的改动,事情会容易的多(效率变高).典型的例子是复制组合结构(eg树形结构),从零开始构建一个树型组合体非常困难.可以通过轻微的改动重用已有的对象,以适应程序中的特定情况. 原型模式属于创建性设计模式,通过拷贝的方式快速创建一个对象,这里拷贝的方式有两种1)浅拷贝2)深拷贝. 二 何时使用原型模式?(where) 1要实例化的类要在运行时才确定. 2很多相关的类,其行为略有不同,而且主要差异在于内部…
一 何为工厂方法模式?(what) 定义创建对象的接口,让子类决定实例化哪一个类,工厂方法是的一个类的实例化延迟到其子类. 工厂方法创建的对象拥有一组共同的行为,所以往类层次结构中引入新的具体产品并不需要修改客户端代码. 二 何时使用工厂方法?(where) 编译时期无法准确预期要创建的对象的类. eg:[NSNumber numberWithBool:YES];工厂方法模式对框架设计者特别有用. 三 实现工厂方法 (how) CanvasView定义了任意CanvasView类型的默认行为.其…
定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类.       <AbstractProductA> <AbstractProductB> <AbstractFactory>    createProuductA        createProductB <ConcreteFactory1>         createProductA->productA1        createProductB->productB…
一 何为单例singleton模式?(what) 保证一个类只有一个实例,并提供一个访问它的全局访问点. 二 何时使用单例模式?(where) 1类只能有一个实例,而且必须从一个为人熟知的访问点对其访问,比如工厂方法. 2这个唯一实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码. 为什么不用静态全局变量或是类方法呢? 如果一个程序中两个人分别在两个地方定义了相同类型的静态变量.那么一个程序中就会有两个相同的全局对象类型. 类方法提供了共享服务,不用创建其对象就可以访问,资源的唯一实例…
已有的类与新的接口之间不兼容的问题相当普遍,人们已为它找到了一个解决方案.这个解决方案就是适配器. 1 何为适配器 what 适配器的主要作用是把被适配者的行为传递给管道另一端的客户端. 将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类一起工作. 实现适配器有两种方式: 1)类适配器:通过继承来适配两个接口.继承Adaptee,遵从<Target>协议. 2)对象适配器:通过组合来适配.遵从<Target>协议,组合了一个队Adap…
来自<Objective-C编程之道iOS设计模式解析>一书的摘要总结 一.Prototype 原型模式 定义:使用原型实例指定创建对象的种类,并通过复制这个原型创建新的对象.(<设计模式>1994) 一般在初始化信息不发生变化的情况下,克隆是最好的办法.这既可以隐藏对象创建的细节,又对性能是大大的提升. 适用情景: 需要创建的对象应独立于其类型与创建方式. 要实例化的类是运行时决定的. 不想要与产品层次相对应的工厂层次. 不同类的实例间的差异仅是状态的若干组合.因此复制相应数量的…
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>生成器模式</title> </head> <body> <script> /** * 生成器模式 * * 定义: * 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. * * 本质: * 分离整…
问题的提出: 有些类很容易创建对象,直接调用其构造方法,例如Student student = new Student("1001","zhang",21); 之所以容易创建,因为其类成员都是基本数据类型或者封装类,或者字符串.但是如果对象的类成员还是对象,那么创建这个对象还需要产生该对象成员的具体对象. public class Unit1 { } public class QuestionProduct { Unit1 u1; Unit2 u2; Unit3 u…
简介 生成器模式属于创建型模式的一种, 又叫建造者模式. 生成器模式涉及4个关键角色:产品(Product),抽象生成器(builder),具体生成器(ConcreteBuilder),指挥者(Director). 实现层面上, 产品定义了需要什么样的对象, 具体生成器完成了对象的具体表示. 如果只需要一个具体的构建者,那么抽象生成器角色和指挥者可以省略(如StringBuilder). 意图 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 类图 实现 一. 定义产…