/*工厂设计模式:
主方法应该表示一个客服端,主方法代码应该越少越好。此时,直接在主方法中指定了要操作的子类
如果要更换子类,肯定哟啊修改客服端,表示更特定的子类关系紧密耦合在一起了,需要一个过渡端
此过渡端称为工厂设计模式。要使得客户端只负责传递参数
*/
interface Fruit{ //定义一个水果的接口
public void eat(); //定义一个吃的抽象方法
}
class Apple implements Fruit{ //Apple类实现Fruit接口
public void eat(){ //覆写抽象方法
System.out.println("eat Apple!");
}
};
class Orange implements Fruit{ //Orange类实现Fruit接口
public void eat(){
System.out.println("eat Orange");
}
};
class Factory{ //定义工厂类
public static Fruit getInstance(String className){ //类方法
Fruit f=null;
if("apple".equals(className)){ //最好字符在判断前
f=new Apple();
}
if("orange".equals(className)){
f=new Orange();
}
return f;
}
};
public class InterfaceCase03{
public static void main(String args[]){
Fruit f=Factory.getInstance(args[0]); //判断传递的参数
if(f!=null){ //判断是否取得实例化
f.eat();
}
}
};
/*输入:java InterfaceCase03 apple
输出:eat Apple!
*/
主方法应该表示一个客服端,主方法代码应该越少越好。此时,直接在主方法中指定了要操作的子类
如果要更换子类,肯定哟啊修改客服端,表示更特定的子类关系紧密耦合在一起了,需要一个过渡端
此过渡端称为工厂设计模式。要使得客户端只负责传递参数
*/
interface Fruit{ //定义一个水果的接口
public void eat(); //定义一个吃的抽象方法
}
class Apple implements Fruit{ //Apple类实现Fruit接口
public void eat(){ //覆写抽象方法
System.out.println("eat Apple!");
}
};
class Orange implements Fruit{ //Orange类实现Fruit接口
public void eat(){
System.out.println("eat Orange");
}
};
class Factory{ //定义工厂类
public static Fruit getInstance(String className){ //类方法
Fruit f=null;
if("apple".equals(className)){ //最好字符在判断前
f=new Apple();
}
if("orange".equals(className)){
f=new Orange();
}
return f;
}
};
public class InterfaceCase03{
public static void main(String args[]){
Fruit f=Factory.getInstance(args[0]); //判断传递的参数
if(f!=null){ //判断是否取得实例化
f.eat();
}
}
};
/*输入:java InterfaceCase03 apple
输出:eat Apple!
*/