设计模式关系图之结构和创建模式
先说结构模式。
如果一个类在抽象和具体 2 个维度上变化,则可使用桥接模式,对应建立 2 个接口,抽象接口持有具体接口构成一个桥。
否则按委派类型个数,如果是多个委派类型,可以使用门面模式统一的获得多个委派类。
如果是一个委派类型,但委派对象是一个集合,则使用组合模式统一的处理单一对象和集合对象。
委派对象如果是大对象,占用大量内存,可使用享元模式将这些类中的大内存状态抽取为享元类。
委派对象和本身类不是一个接口,则可使用适配器模式通过使用委派对象实现自身接口;如果是相同接口,则可使用代理模式;若还想对接口增强,可使用装饰模式;
再说创建模式。
如果仅允许一个对象,则使用单例模式。创建和自身相同状态的对象,可使用原型模式(如对象的 clone 方法)。如果构造方法有大量的参数,可以使用构造器模式分步骤的构造一个对象的内部状态。另外对象的创建可以使用工厂模式,创建一个类型对象可以通过工厂方法模式仅通过一个方法获取对象,如果创建多个类型的对象,则使用抽象工厂模式将这些创建不同类型的方法放在一个接口中(即抽象工厂)。
欢迎讨论。
评论