一 .
- 目的
工厂模式就是专门负责将大量有共同接口的类实例化,而且不必实现知道每次要实例化那一个类的模式。它定义一个用于创建对象的接口,有子类决定实例化那一个类。
如果有许多地方都需要生成A的对象,那么你需要写很多A a=new A()。
如果需要修改的话,你要修改许多地方。
但是如果用工厂模式,你只需要修改工厂代码。其他地方引用工厂,可以做到只修改一个地方,其他代码都不动,就是解耦了。 - 原因
在面向程序设计中,最通常的方法就是一个new操作符来产生一个对象,new操作符就是用来构造对象实例的,但是在一些情况下,new操作符直接产生对象会带来一些问题,举例来说,许多类型对对象的创造需要一系列步骤。你可能需要计算取得对象的初始值,选择生成那个子对象实例,或在声称你需要的对象之前必须生成一些辅助功能的对象,在这些情况下,新对象是一个过程,不再是一个单步操作,就更像是一部大机器运转。
如何能轻松的建立这么复杂的对象呢?答案是构建一个工厂模式,来创建新的对象。
`
public class Apple implements Fruit {
public void eat(){
// TODO Auto-generated method stub
System.out.println(“吃苹果”);
}
}
public class Orange implements Fruit {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("吃橘子");
}
}
public class Factory1 {
public static Fruit getInstance(String className){
if(“apple”.equals(className)){
return new Apple();
}
if(“orange”.equals(className)){
return new Orange();
}
return null;
}
}
`-
public class factory {
public static void main(String args[]){
Fruit f=Factory1.getInstance("orange");
f.eat();
}
}