普及一下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();