工厂模式
定义
在工厂模式(Factory Pattern)中,父类决定实例的生成方式,但不决定所要生成的具体的类,具体的处理全部交给子类负责。
类图
Product(产品)
Product角色属于框架,是一个抽象类。它定义了在工厂模式中生产的那些实例是持有的接口,但具体的处理则由子类ConcreteProduct角色决定
Creator(创建者)
它是负责生成Product角色的抽象类,但具体的处理则由子类ConcreteCreator角色决定。
Creator对于实际负责生成实例的ConcreteCreator角色一无所知,它唯一知道的是,只要调用Product角色和生成实例的方法,就可以生成Product的实例。不用new关键字来生成实例,而是调用生成实例的专用方法来生成实例,这样就可以防止父类与其他具体类耦合。
ConcreteProduct(具体的产品)
它决定了具体的产品
ConcreteCreator(具体的创建者)
负责生成具体的产品
示例
类图
Product
1 | public abstract class Product { |
Factory
1 | public abstract class Factory { |
IDCard
1 | public class IDCard extends Product { |
IDCardFactory
1 | public class IDCardFactory extends Factory { |
Main
1 | public class Main { |