p2p网上贷款网站建设方案/seo入门培训学校
编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。
1.工厂方法
在《简单工厂模式》一节介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。
2.工厂方法优点
- 用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。
- 灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。
- 典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。
3.工厂方法缺点
- 类的个数容易过多,增加复杂度
- 增加了系统的抽象性和理解难度
- 抽象产品只能生产一种产品,此弊端可使用抽象工厂模式解决。
4.工厂方法简单使用场景实例
/*** 工厂方法接口*/
public interface FruitFactory {/*** 摘水果行为* @return*/public Fruit getFruit();
}public class AppleFactory implements FruitFactory{public Fruit getFruit(){return new Apple();}
}public class BananaFactory implements FruitFactory{public Fruit getFruit(){return new Banana();}
}public class OrangeFactory implements FruitFactory{public Fruit getFruit(){return new Orange("lpf",80);}
}
定义一个水果工厂接口,接口一个方法就是获取水果。不同的水果使用不同的工厂来负责创建。
这样当需要新增一个水果的时候,只需要新增一个相应的工厂就好,对其他的水果的创建不会有任何的影响。
总结一下:相对于简单工厂,工厂方法就是将不对的对象创建交给不对的工厂来处理。符合单一职责,符合开闭原则,符合面向接口编程的思想。