菜鸟硕枫设计模式系列之3 工厂方法模式

工厂方法模式也是一种创建对象的设计模式,属于创建型设计模式。工厂方法模式定义了对象工厂接口,抽象出了获取对象实例方法,而将具体的创建对象工作放到了具体的类创建工厂进行。

工厂方法模式类图:


[img]http://dl.iteye.com/upload/attachment/364517/538be5db-fcb6-38f8-bb2b-480cf3b9bdab.jpg[/img]


具体实现代码示例:
工厂接口:

package factoryPattern;

public interface Factory {

Fruit factorygetInstance();
}

具体工厂1:

package factoryPattern;

public class AppleFactory implements Factory{

public Fruit factorygetInstance(){
// TODO Auto-generated method stub
return new Apple();
}

}

具体工厂2:

package factoryPattern;

public class PearFactory implements Factory{

public Fruit factorygetInstance(){
// TODO Auto-generated method stub
return new Pear();
}
}


对象接口:

package factoryPattern;

public interface Fruit {

String getFruitName();
}

具体对象1:

package factoryPattern;

public class Apple implements Fruit{

@Override
public String getFruitName(){
// TODO Auto-generated method stub
return "This is apple";
}

}


具体对象2:

package factoryPattern;

public class Pear implements Fruit {

@Override
public String getFruitName() {
// TODO Auto-generated method stub
return "This is pear";
}

}


测试类:

package factoryPattern;

public class FactoryMethodTest {

public static void main(String[] args){
Factory fac = new AppleFactory();
System.out.println(fac.factorygetInstance().getFruitName());
fac = new PearFactory();
System.out.println(fac.factorygetInstance().getFruitName());
}

}


说明:
与简单工厂模式相比,工厂方法模式将对象的创建与抽象工厂分离,当要新增类对象的创建时,只需要实现一个具体工厂和一个具体的类(新增类对象的类)即可,满足了开闭原则。缺点在于,多出了很多具体的创建对象工厂,存在一种类对象,则要有相应的对象工厂对应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值