标签(空格分隔): 简单工厂模式 工厂模式 抽象工厂模式
1、简单工厂模式:
简单工厂模式,由父类决定,初始化对象的类型。
它主要有三个参与者:抽象角色(父类),具体产品角色和工厂角色。其中由工厂角色(负责返回抽象角色)根据传入的参数来决定返回的具体产品角色。
简单工厂模式最大的优点在于,将具体初始化对象的逻辑转移到工厂中,客户端只需要提供参数给工厂类就能得到对应的实例化相关的类,去除了客户端对具体产品的依赖。
2、工厂模式:
工厂模式,定义一个创建对象的接口, 让子类决定实例化哪一个类, 工厂方法使一个类的实例化延伸到了子类
由于简单工厂模式是由工厂类来决定实例化哪个对象,那每次增加/修改功能的时候都需要调整对应工厂类的逻辑判断代码,违反了开发-封闭原则,所以工厂方法将实例化的判断衍生到子类中,来解决这个问题。
工厂模式解决的是客户端开闭原则问题,当有功能增加的时候只需要增加对应的子类就能解决问题,但是逻辑判断的问题还是存在的,只不过将对应的判断逻辑转移到客户端位置(但是因为涉及到需求变动,客户端的代码修改是必须的,所以并不存在开闭原则问题)。
3、抽象工厂模式:
抽象工厂模式,提供一个可以创建一系列相关或互相一路来对象的接口,而无须指定它们具体的类型。
抽象工厂模式中,应该存在多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类可以创建多个具体产品类的实例。
抽象工厂模式可以看作是对工厂模式的二次包装,即生成具有工厂模式行为的类的一种工厂模式(这里的工厂模式可以用1、简单工厂/2、工厂模式)。也就是说,抽象工厂模式,实际上是用来生成工厂的工厂模式,当业务场景单一,且不会发生变化的极端情况下,抽象工厂模式≈工厂模式。
网友评论