初识工厂类:
每一个接口要一个工厂类,所以接口太多的话,工厂类也会随之增加,所以不好!
好处:可以解决子类与客户端的藕合问题,
如:
定义一个Fruit接口:
package aa;
public interface fruit {
public void eat();
}
定义两个子类实现接口:
1、apple.java
package aa;
public class Apple implements fruit {
public void eat() {
System.out.println("苹果");
}
}
2、orange.java
package aa;
public class orange implements fruit{
public void eat() {
System.out.println("aaa");
}
}
定义一个工厂类
Factory.java
package aa;
public class Factory {
public static fruit fruitdemo(int i){
fruit f=null;
if(i==1){
f=new Apple();
}
if(i==2){
f=new orange();
}
return f;
}
}
定义一个测试函数;
Test1.java
package aa;
public class Test1 {
public static void main(String[] args){
fruit f=Factory.fruitdemo(1);//改变参数值可以得到不同的水果。它不会跟子类有藕合关系。所以比较好。
f.eat();
}
}