标签:print 抽象方法 imp ret [] efault equal family font
public class test1 {
public static void main(String[] args)
{ Fruit a = Factory1.getInstance("apple");
a.eat();
}}
interface Fruit
{
public void eat();
}
class Apple implements Fruit
{
public void eat()
{
System.out.println("吃苹果");
}
}
class Orange implements Fruit
{
public void eat()
{
System.out.println("吃橘子");
}
}
class Factory1 //取得fruit类的实例对象
{
public static Fruit getInstance(String classname)
{
if("apple".equals(classname))
return new Apple();
if("Orange".equals(classname))
return new Orange();
return null;
}
}
此时的程序,客户端(main方法)没有和具体的子类耦合在一起,如果有更多的Friut子类接口出现只需要修改factory类即可,所有接口对象都通过factory类取得,在开发中
只要遇到取得接口对象实例的操作都应该采用工厂设计模式。
标签:print 抽象方法 imp ret [] efault equal family font
原文地址:http://www.cnblogs.com/2206411193qzb/p/7355659.html