写东西的能力有限,希望可以谅解。
工厂模式
定义:提供创建对象的接口
为何使用:如果在一个项目中你需要new很多的实体,恰好这个实体new的过程很是复杂,而且有一天你的PM说在这个new的工程中加一个级别的过滤吧。
你会突然发现你的工作量怎么那么大呢!如果当时用到了工厂你就会发现原来加这个需求是这么的简单。而且在new的过程出现错误的几率将
大大的降低了。你的代码也将会非常整洁。
实例:(直接上代码,发现弄图片是如此的麻烦!)
//这只是一个小例子,会根据给出的颜色来给出具体的实例
public class WorkFactory {
public static Work getWork(String color){
return color.equals("black")?new BlackWork():new WhiteWork();
}
}
抽象工厂
定义:如果工厂是生产实例的,那抽象工厂就是一个整个工厂的架构没有具体的实现
为何使用:比如人家想用你的工厂,但是你又不想让人家看到你工厂里面具体的工作,并且你还要告诉他你工厂可能干什么。这时候你就可以给他看你的抽象的工厂
而不是真正再生产的工厂了。而且利于扩展,比如又让你建一个工厂和上一个在实现上有区别但是还是那几个方法。这样你利用抽象工厂很快就可以搭建
这另一个工厂了。
实例:
public abstract class AbstractFactory {
public abstract Work getWork() throws Exception;
public abstract Study getStudy() throws Exception;
}