静态工厂方法模式

本文详细介绍了工厂模式的概念及其实现方式,包括工厂类、抽象产品和具体产品的角色定义,通过实例展示了如何使用工厂模式创建不同类型的对象,并讨论了其在实际编程中的应用。

创建模式——将类实例化的过程给抽象化

静态工厂主要由三个角色构成:

1、工厂类角色

2、抽象产品角色

3、具体产品角色

 

具体的代码实现:

Util.java

 

public class Util {

public static void log(String msg) {

System.out.println(msg);

}

}

 

NotFruitException.java

 

public class NotFruitException extends Exception{

public NotFruitException(String msg){

super(msg);

}

}

 

IFruit.java

 

public interface IFruit {

void grow();

void harvest();

void plant();

}

 

Apple.java

 

public class Apple implements IFruit {

 

private int treeAge;

 

@Override

public void grow() {

Util.log("苹果生长中……");

}

 

@Override

public void harvest() {

Util.log("苹果收获中……");

}

 

@Override

public void plant() {

Util.log("苹果种植中……");

}

 

public int getTreeAge() {

return treeAge;

}

 

public void setTreeAge(int treeAge) {

this.treeAge = treeAge;

}

 

}

Grape .java
public class Grape implements IFruit{

@Override
public void grow() {
Util.log("草莓生长中……");
}

@Override
public void harvest() {
Util.log("草莓收获中……");
}

@Override
public void plant() {
Util.log("草莓种植中");
}
}
FruitGardener.java
public class FruitGardener {
/**
* 静态工厂方法
* @throws NotFruitException 
*/
public static IFruit factory(String which) throws NotFruitException{
if(which.equals("apple")){
return new Apple();
}else if(which.equals("grape")){
return new Grape();
}else{
throw new NotFruitException("没有这类水果,赶快去种植吧……");
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值