`
modun
  • 浏览: 147206 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

简单工厂模式

阅读更多
<p>
<pre name="code" class="java">//使用简单计算器实现</pre>
<pre name="code" class="java">//运算符基类</pre>

package Factory;

public abstract class Operation {
private Double _numberA = new Double(0);
private Double _numberB = new Double(0);

public abstract Double getResult();

public Double get_numberA() {
return _numberA;
}

public void set_numberA(Double _numberA) {
this._numberA = _numberA;
}

public Double get_numberB() {
return _numberB;
}

public void set_numberB(Double _numberB) {
this._numberB = _numberB;
}
}

//加
package Factory;

public class OperationAdd extends Operation{

@Override
public Double getResult() {
return get_numberA() + get_numberB();
}

}

//减

package Factory;

public class OperationSub extends Operation{

@Override
public Double getResult() {
return get_numberA() - get_numberB();
}

}

//乘

package Factory;

public class OperationMul extends Operation{

@Override
public Double getResult() {
return get_numberA() * get_numberB();
}

}
//除

package Factory;

public class OperationDiv extends Operation{

@Override
public Double getResult() {
if (get_numberB() == 0) {
throw new IllegalArgumentException("除数不能为0");
}
return get_numberA() / get_numberB();
}

}
//工厂类

package Factory;

public abstract class Operation {
private Double _numberA = new Double(0);
private Double _numberB = new Double(0);

public abstract Double getResult();

public Double get_numberA() {
return _numberA;
}

public void set_numberA(Double _numberA) {
this._numberA = _numberA;
}

public Double get_numberB() {
return _numberB;
}

public void set_numberB(Double _numberB) {
this._numberB = _numberB;
}
}

//Main

package Factory;

public class Program {
public static void main(String[] args) {
Operation __a = Factory.createOperation("+");
__a.set_numberA(new Double(5));
__a.set_numberB(new Double(8));
System.out.println(__a.getResult());

Operation __b = Factory.createOperation("-");
__b.set_numberA(new Double(5));
__b.set_numberB(new Double(8));
System.out.println(__b.getResult());

Operation __c = Factory.createOperation("*");
__c.set_numberA(new Double(5));
__c.set_numberB(new Double(8));
System.out.println(__c.getResult());

Operation __d = Factory.createOperation("/");
__d.set_numberA(new Double(5));
__d.set_numberB(new Double(8));
System.out.println(__d.getResult());

Operation __e = Factory.createOperation("/");
__e.set_numberA(new Double(5));
__e.set_numberB(new Double(0));
System.out.println(__e.getResult());
}
}
&nbsp;</p>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics