适用场景
适用于创建较复杂的具有某种特征的一类对象,隐藏创建细节,降低对象间的耦合(只依赖工厂,不依赖创建对象细节需要的那些类)。
简单工厂模式
角色–>用途
工厂类:创建对象
产品接口:抽象出产品特征
产品实现类:一种产品一个类,通过工厂类创建每一种类的对象
工厂方法模式
角色–>用途
工厂接口:抽象出工厂特征(汽车厂–奔驰汽车厂,宝马汽车厂)
工厂类:每种工厂创建一个类(-奔驰汽车厂,宝马汽车厂)
产品接口:抽象出产品特征
产品实现类:一种产品一个类,通过不同工厂类创建每一种类型的对象(一个工厂之创建一种类型的产品)
抽象工厂模式
角色–>用途
工厂接口:抽象出多种工厂特征【奔驰汽车厂(国产,进口),宝马汽车厂(国产,进口),汽车厂接口最终有两个创建方法:国产车创建方法,进口车创建方法;】
工厂类:每种工厂创建一个类(奔驰汽车厂,宝马汽车厂)
产品接口:抽象出产品特征
产品实现类:一种产品一个类,通过不同工厂类创建每一种类型的对象(一个工厂可创建多种类型的产品)