简单工厂模式(Simply Factory Pattern),
工厂方法模式(Factory Method Pattern),
抽象工厂模式(Abstract Factory Pattern)
想把这3个模式的特点和关联总结一下。
Pattern Name | 工厂 Factroy | Return Value | 决策部 Director | 实例对象的关系 | 最有特点的Code | 特点 |
简单工厂模式 | FactoryClass | 同根的不同子实例 | 有,由FactroyClass中的IF文决策 | 一个树结构,同根 | FactoryClass{ public FactoryClass (){ if (cun>3) return new CA(); else return new CB(); }} | Simply,直接返回最终实例 |
工厂方法模式 | EventFactoryClass | 同根的不同子实例 | 无 | 一个树结构,同根,子实例中的方法动作不同 | efc.MethodRun() | 实例和方法的绑定 |
抽象工厂模式 | RootClass | 根的实例 | 无,由RootClass的Member决定 | 根实例本身,多种(个)Member的组合 | RootClass{ SubClass1 sub1; SubClass2 sub2; } | MemberClass的隔离&组合 |
工厂和抽象工厂,总之工厂:就是返回实例对象的Class。
工厂方法模式的名称中主要强调了方法,可以理解为工厂的零件决定方法的含义,既然和工厂挂上了边,是可以要返回一个实例的,但不是必须的。
决策点:就是决定返回哪个实例的分支处理。