简单工厂模式
简单工厂模式,准确来说不属于设计模式中的一种,可以作为我们学习设计模式的入门。在我看来,学习简单工厂模式重要的在于理解它的思想和这样设计的好处,便于我们理解设计模式的6大原则,也可以作为工厂模式的基础来学习。
目标是什么?
简单工厂模式的目标,或者说我们使用简单工厂模式应该达到什么样的效果呢?
我们的程序在实现了需求之后,我们需要思考的就是如何使程序容易维护,容易扩展,容易复用,从而达到高质量代码的要求。我们可以将具有相同特性的对象提取为一个工厂,根据不同的需求,我们在new这个工厂时可以返回不同的对象。
实现原理
根据面向接口编程,我们在new一个工厂类时,返回的应该是一个接口,我了解的大体有两种实现方式:
1.根据new工厂时传递进来的参数,在工厂类中进行判断,从而返回实现同一接口的不同类;
2.在工厂类中写多个方法,每个方法返回不同的对象。个人比较喜欢这种,因为使用者可以不需要知道哪个参数对应哪个对象,完全根据方法简介来进行调用。
下面我将使用第二种方式来实现一个简单工厂。
简单实现
package domain;
/**
* 简单工厂类
*/
public class AnimalFactory {
/**
* 获得猪猪
* @return
*/
public static Factory getPig(){
return new Pig();
}
/**
* 获得狗狗
* @return
*/
public static Factory getDog(){
return new Dog();
}
}
这种工厂也叫方法工厂。这个代码也比较简单,就不多做解释了,重要的是思想,我们需要用心去体会。
总结
我们时刻需要考虑如何使代码更简洁,更容易维护,更容易扩展和复用。这是我从简单工厂模式中认识到最重要的思想。
到此简单工厂结束。如果有什么错误或者建议的,欢迎评论或者私信我,谢谢各位!