工厂方法模式

第一定义一个抽象工厂:

/**
 * 接口实现对象选择
 *@author YangQuanqing
 *Data:2014-2-24
 *
 */
public interface FactoryInterface {
//返回具体运算类
public abstract Operation getOperation();


}


第二定义一个抽象的操作类

/**
 * 功能:定义一个抽象类用于算术运算
 *@author YangQuanqing
 *Data:2014-2-24
 *
 */


public abstract class Operation {
//计算运算后的结果
public abstract double getResult();
public abstract void setOperNums(double numA,double numB);
}


第三定义具体的操作类

/**
 * 
 *功能:实现加法运算
 *@author YangQuanqing
 *Data:2014-2-24
 *
 */
public class OperationAdd extends Operation {
private double numA=0;
private double numB=0;
private double result=0;

public void setOperNums(double numA,double numB)
{
this.numA=numA;
this.numB=numB;
}
/* (non-Javadoc)
* @see FactoryMethod.Operation#getResult()
*/
@Override
public double getResult() {
result=numA+numB;
return result;
}





}


/**
 * 
 *功能:实现减法运算
 *@author YangQuanqing
 *Data:2014-2-24
 *
 */
public class OperationSub extends Operation{
private double numA=0;
private double numB=0;
private double result=0;

public void setOperNums(double numA,double numB)
{
this.numA=numA;
this.numB=numB;
}
/* (non-Javadoc)
* @see FactoryMethod.Operation#getResult()
*/
@Override
public double getResult() {
result=numA+numB;
return result;
}


}



第四定义具体的工厂

/**
 * 功能:减法运算工厂类
 *@author YangQuanqing
 *Data:2014-2-24
 *
 */
public class SubFactory implements FactoryInterface{


private Operation oper=null;
/* (non-Javadoc)
* @see FactoryMethod.FactoryInterface#getOperation()
*/
@Override
public Operation getOperation() {
oper=new OperationSub();
return oper;
}


}



/**
 * 功能:加法工厂方法
 *@author YangQuanqing
 *Data:
 *
 */
public class AddFactory implements FactoryInterface{


//private Operation oper=null;
/* (non-Javadoc)
* @see FactoryMethod.FactoryInterface#getOperation()
*/
@Override
public Operation getOperation() {
Operation oper=null;
oper=new OperationAdd();
return oper;
}



}




第五客户端调用

/**
 * 工厂方法模式客户端
 *@author YangQuanqing
 *Data:
 *
 */
public class FactoryMethodClinet {

public static void main(String[] args)
{
FactoryInterface factory=null;
Operation oper=null;
factory=new AddFactory();
oper=factory.getOperation();
oper.setOperNums(50, 30);
System.out.print(oper.getResult());


}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值