标签:
当使用new创建对象的时候,总是会实例化一个具体类,这样就不是针对接口编程,并且当一段代码中有大量的实例化活动,就应该考虑对扩展开放,对修改关闭,就是将其中变化的部分封装提取,也就是封装创建对象的代码,生成一个新的对象,也就是工厂对象,这样就得到了一个简单工厂。简单工厂并不能称之为一种模式,更像是一个编程习惯。
所有的工厂模式都是用来封装对象的创建。工厂方法模式通过让子类决定创建的对象是什么,来达到将对象创建的过程封装的目的。其实就是把工厂对象放到父类的一个抽象方法中,子类实现这个工厂方法,用来创建对象。工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂的每个方法其实可以看作工厂方法,每个方法都是抽象的,子类实现这个方法创建对象,或者说抽象工厂定义了一个负责创建一组产品的接口,这个接口内的每个方法都负责创建一个具体产品,而这些方法的实现都在抽象工厂的子类中来做。
标签:
原文地址:http://www.cnblogs.com/belloworld/p/5790817.html