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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值