简单工厂模式学习,
因为工厂模式就相当于创建实例对象的new,会给你系统带来更大的可扩展性和尽量少的修改量。
1,要生产的产品各自有一个工厂用来产生他们。
2,产品和工厂各自继承抽象类规范内部方法。
顺便学习了单例 --> 对于一个类来说,只能有一个实例可以被使用。(还有多例的概念,就是在类里写一个list容器new好的实例放进去,一次性的拿出来。不如说连接池)
public class Car {
public static Car car = new Car();
private Car(){}//将构造方法私有化,自主生产自己不再依赖于new
public static Car getInstance(){//定义实例化方法,取得了产生实例的权利。
if(car!=null){
return car;
}
return new Car();
}
public void run(){
System.out.println("go go!");
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Car c1 = Car.getInstance(); //使用静态方法取得实例
Car c2 = Car.getInstance();
if (c1==c2){
System.out.println("是单例");
}
}
}
抽象工厂学习,
首先要产生一系列产品的前提下需要大量的new
如果改动工作量过大,所以使用工厂模式,而抽象工厂是实现替换列产品的模式。
1,所有的产品分类后继承接口或抽象类。接口或抽象类定义实现动作。
2,创建产生各种系列产品的工厂类,并且继承一个统一的抽象类,这个抽象类统一了各个工厂生产系列产品的标准。
3,在具体使用时,只要更换工厂类就跟换了所有的产品组合了。
关于spring
在Spring中大量使用了工厂模式,以实现控制翻转(ioc),及依赖注入。