抽象工厂:生产多个抽象产品,即形成了抽象产品族,则需要抽象多个抽象方法,如果把“一个抽象产品和一个抽象方法”当做一个“工厂方法”理解,则这样就形成了抽象的工厂,工厂中都是抽象的,无业务逻辑。
每需要一个新的产品族的时候,扩展具体类即可。
缺点:只能生产产品族,,产品族是固定的,即无法添加新产品。
工厂方法:目的是生产一个仅且一个抽象产品,生产的细节由其派生类去实现。
但是在细节上,包含了具体的业务逻辑,即非抽象的方法存在,只有一个“抽象方法”,顾名思义“工厂方法”,一个抽象的“方法”当做“工厂”用。
每需要创建一个有且只有一个新的对象时候,扩展即可。
简单工厂:没有抽象方法,全静态的方法,即最极端,最简单(太简单了)的产品。
每需要创建一个新的对象,添加一个静态方法即可。