、、--------------1简单工厂模式----------------
工厂角色:简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调取,常见所需的产品对象。(FruitFactory)
抽象角色:简单工厂模式所创建的所有对象的父类,它负责描叙所有实例所有的公共接口。Fruit
具体产品角色:简单工厂模式所创建的具体实例对象.Apple,Bnanaa
-----------------工厂方法模式-------------------------
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
---》把上一个里面的FruitFactory变为接口,里面定义一个getFruit()接口方法,并用AppleActory等子类工厂来实现它
---------------抽象工厂模式----------------
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据LSP原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也就是这些抽象产品的具体子类的实例。工厂类负责创建抽象产品的具体子类的实例。
抽象工厂方法对应产品结构(苹果,橡胶)
具体工厂对应产品族