我理解的--java工厂模式

工厂模式首先解决的是依赖问题:一个4s店须要一辆车(宝马或者奥迪 。。。),能够直接购买或者有别人提供,工厂模式就是用的别人提供的方法。图: java

为什吗要用设计模式,他不是一个工具或者语言的一中机制,它是解决问题的思路,利用某种语言的的特性(继承,多态、封装等)。须要你作过项目写过大量的代码后才会用到。也能够不用,你可能会付出不少的时间。作项目最惧怕的就是后期维护,你前期框架不搭建好的话,后期都不知道怎么修改或者要花上翻倍的时间。单纯的学习设计模式可能没有多好的效果。可是后面你会慢慢的发现他的能量之大。感受是每一个程序员必修的一门课。(话多说了一些!!) 程序员

工厂模式算是比较长用的,它是解决类依赖的耦合度的:就如图解释A学要B,经常使用的是new B实例,那么后期须要换成C在修改代码new C,若是要修该上百个,那你就受不了了。 设计模式

工厂模式的思路是利用多态机制不管怎么变,都不用在逻辑代码中查看修改,只须要在工厂类(一个类或接口)中修改一行代码。 框架

提醒:建立类的实体2种方法:new 或者 一个方法。这里就是用的方法。牢记这一点。 ide

1-----------A须要B(依赖),用静态方法获取实例: 工具

class Test {

 //Test类须要Animal

 public static void main(String[] args) {
		Animal animal = Factory.getAnimal();
		System.out.print(animal.getName() + "=======" + animal.getColor());

	}

}
这里注意须要多态,Animal是个接口,这样的话只要是实现了这个接口,就不用修改了。

interface Animal {
	public String getName();

	public String getColor();
}
工厂模式能够想象成工厂就是一个普通的类,里面有一个静态方法返回一个须要的对象

class Factory {
	public static Animal getAnimal() {
		return new Dog();
	}
}
这里返回的是Dog。上面的代码能够简化成

Animal animal = new Dog();
感受很麻烦,直接这句话不就得了,还拐那么多弯。说了代码少的话无所谓,但是有个几万行的代码,你就傻眼了。

要实现上面代码就要用到多态了,把Dog实现Animal接口 学习

class Dog implements Animal {
	String name = "dog";
	String color = "black";

	@Override
	public String getName() {
		// TODO Auto-generated method stub
		return name;
	}

	@Override
	public String getColor() {
		// TODO Auto-generated method stub
		return color;
	}
}
如今若是要修改代码,换成猫Cat,就在建立一个类Cat,继承Animal

class Cat implements Animal {
	String name = "cat";
	String color = "red";

	public String getName() {
		return name;
	}

	public String getColor() {
		return color;
	}

}




在factory中修改一句:return new Cat(); 就能够了。之后无论修改多少次10000次都不怕。
spa



工厂模式分了好几种,我只是写了其中的一种,网上有不少,看来看去文字太多,抄袭太多不容易理解,我就简单的写了一些。你想深如的话,能够百度。
设计

相关文章
相关标签/搜索