对象的创建和对象的使用分离开
首先将需要创建的各种不同对象(例如各种不同的Chart对象)的相关代码封装到不同的类 中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类 中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在 工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入的参数不同创建不同的具体 产品对象;客户端只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象。
所有图表的实现代码封装在一个Chart类中
简单工厂模式举例
将Chart类的职责分离,同时将Chart对象的创建和使用分离
Chart接口充当抽象产品类,其子类HistogramChart、PieChart和LineChart充当具体产品类,ChartFactory充当工厂类
将静态工厂方法的参数存储在XML或properties格式的配置文件中
更换具体图表对象,只需修改配置文件config.xml,无须修改任何源代码