简单工厂模式:就是通过有一个工厂类传递过来一个参数决定创建哪一张产品的实例。优点:产品类的等级结构不会反映到工厂类中。从而产品类的结构变化不会影响到工厂类的 变化。缺点是:增加新的产品需要改动对应的工厂类的变化;由于简单工厂模式是作为静态方法作为工厂方法,而静态方法无法被子类继承,因此工厂角色无法形 成基于继承的等级结构。
工厂模式: 简单工厂模式,因为新的产品类加入到系统中,就需要修改工厂类,讲必要的逻辑加入到工厂类中,对开闭原则支持不够。
在工厂模式中,核心的工厂类不在负责所有产品的创建,只是交由子类去实现,仅仅负责给出子类必须实现的接口。这种抽象的结果,是这种产品在不修改具体工厂的
情况下引进新的产品。
抽象工厂模式: 抽象工厂模式和工厂模式的区别在于:工厂模式是针对一个产品登记,而抽象工厂模式针对的是多个产品等级。如果系统中有两个产品族,而只想用一个工厂族的 话,使用抽象工厂模式,但每个工厂就需要提供不止一个的实现方法。
单例模式:单例模式可以减低系统创建对象消耗的资源,提供一个全局型的访问点。在单例中是不能允许系统进行创建的,因此一般来说它的构造方法应该是私有的。