功能优点简单方法模式优点缺点工厂方法何时使用工厂方法模式两种模式比较示例: 功能 选择一个类创建该类的对象以超类的类型返回该对象不做任何其它事情 优点清洗客户程序 隐藏初始对象的繁杂的细节客户类只知道哪种类型的对象被创建了,而不必知道哪个具体的子类被初始化了;客户类只知道父类类型 两种不同的工厂方法模式 简单工厂方法模式工厂方法模式 简单方法模式 优点一些逻辑被放在了工厂类里面 客户类不用自己创建对象责任分离 缺点添加Product子类比较困难 工厂方法一个创建一个,一一对应 何时使用工厂方法模式大量条件语句 创建对象的任务分散在客户类的子类中,比较乱;可使用工厂方法模式将创建产品类的子类对象的责任分离出来 两种模式比较 中心不同工厂方法不同,一个静态,一个动态工厂方法模式的可扩展性两个工厂方法返回类型都是超类类型工厂方法模式支持开闭原则,但是简单工厂方法模式不支持开闭原则