首页 > 代码库 > 设计模式-创建型模式
设计模式-创建型模式
工厂模式
1. why
主要解决接口选择的问题。
2. when
我们明确地计划不同条件下创建不同实例时。
3. how
在工厂方法中,根据特定字符串返回不同的实例。
抽象工厂模式
1. why
当有多个产品等级结构时,工厂模式不适用,需要使用抽象工厂模式。
2. when
系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。
3. how
具体工厂继承抽象工厂,通过传入特殊字符,返回具体的工厂,下同工厂模式。
单例模式
1. why
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2. when
耗时的类频繁地创建与销毁影响性能。
某些情况下,只能有一个实例。
3. how
私有的构造器。
原型模式
1. why
创建重复的对象,同时又能保证性能。
2. when
1、当一个系统应该独立于它的产品创建,构成和表示时。
2、当要实例化的类是在运行时刻指定时,例如,通过动态装载。
3、为了避免创建一个与产品类层次平行的工厂类层次时。
4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
3. how
实现克隆操作,在 JAVA 继承 Cloneable,重写 clone()。
建造者模式
1. why
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
2. when
1、创建一个对象时,并不一定拥有创建对象的全部信息,需要分步骤创建。
2、需要生成的对象具有复杂的内部结构。
3. how
建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。
设计模式-创建型模式