您的位置:首页 > 其它

设计模式第二节:Factory Method(工厂方法)

2016-05-27 16:09 597 查看
普及一下java的常识:1: 一个接口可以继承一个或者多个接口,但不能去实现它或者它们,因为实现它或者它们,就要把接口中的抽象实现,这样的话就会与接口的概念相反。2:抽象类可以继承抽象类也可以实现接口,但是都不用实现它们的抽象方法。看图更加形象:



1.描述:工厂方法属于创建型

2.模式结构图:



3.理解:
具体对象(Product)的实现移动到子类(ConcreteProductA)中实现。因为面对不同的子类实现,如果单单使用一个工厂方法是不能满足要求的,所以提取工厂方法抽象类(Creator)。并添加不同的实现对Creator。在使用不同的具体对象时(ConfreteProductA/ConfreteProductB),只需调用不同的工厂方法实现就可以(ConcreteCreateA/ConcreteCreateB)。工厂方法提供了统一的工厂方法接口factorMethod()。
4:例子:
产品类的抽象类:
public abstract class Water {

public  Water(){}
public abstract void judgeLevel();

}

抽象类的具体实现;
public class LifeWater extends Water{
@Override
public void judgeLevel() {
// TODO Auto-generated method stub
System.out.println("等级:"+6);
}

}

工厂方法:
public abstract class Creator {
public abstract Water factoryMethod();
public Water getObject()
{
Water w=factoryMethod();
return w;
}

}

public class ConcreteCreator extends Creator{
@Override
public Water factoryMethod() {
// TODO Auto-generated method stub
Water w;
w=new LifeWater();
return w;
}

}

下面是如何调用上述代码,得到想要产品类的实现:
Water w;
Creator c=ConcreteCreator ();
w=c.getObject();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: