工厂模式
创建型软件设计模式
模式
- 在某一背景下某个问题的一种解决方式。
- 每个模式都描述了一个在环境中会不断重复出现的问题,并进而叙述了这个问题的解决方案的要素。
- 通过这种方式解决方案能够百万次的反复应用,但是具体方式又不会完全相同。
模式包括
- 模式的名称
- 模式的目的,即要解决的问题
- 实现方法
- 为实现该模式必须考虑的限制和约束因素
软件设计模式
创建型:主要用于创建对象,创建与使用分离;
结构型:处理类或者对象的组合
行为型:类之间或对象之间的交互和怎样分配职责。
工厂方法
使用工厂方法访问并初始化合适的类的对对象,简化了应用程序,应用程序不在拥有一大堆与的条件判断语句来确定该创建哪个类。
专门定义了一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
- 简单工厂模式
- 实现了对责任的分割,提供了专门的的工厂类用于创建对象
- 优点:工厂类有必要的逻辑判断,实现了对责任的分割,它提供了专门的工厂类用于创建对象
- 缺点:工厂类集中了所有产品创建的逻辑;增加类系统中类的个数;系统扩展困难,一旦添加新的铲平就不得不修改工厂的逻辑违背了开闭原则,在产品类型较多的时候会造成工厂逻辑过于复杂;工厂角色无法形成基于继承的等级结构。
- 适用场合:创建的对象比较少的时候;客户端只知道传如工厂类的参数,对于创建对象不关心。
- 工厂方方法模式
- 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体的创建工作交给子类去完成。
- 工厂方法模式里面可以允许系统在不修改工厂角色的情况下引进新产品。很好符合了开闭原则