加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第1章《简单工厂模式》

发布时间:2020-12-13 20:55:54 所属栏目:百科 来源:网络整理
导读:/** @Author: cxh @CreateTime: 17/12/31 17:53 @ProjectName: JavaBaseTest */ public class Client { //客户端代码 public static void main(String[] args) { //定义一种操作 Operation ope=OperationFactory.createOperation("+"); //定义两个操作数 ope

/**

  • @Author: cxh
  • @CreateTime: 17/12/31 17:53
  • @ProjectName: JavaBaseTest
    */
    public class Client {
    //客户端代码
    public static void main(String[] args) {
    //定义一种操作
    Operation ope=OperationFactory.createOperation("+");
    //定义两个操作数
    ope.setFirst(11);
    ope.setSecond(22);
    //输出计算结果
    System.out.println(ope.getResult());
    }
    }

(2)Operation

/**

  • @Author: cxh

  • @CreateTime: 17/12/31 17:51

  • @ProjectName: JavaBaseTest
    */
    public class Operation {
    private int first;
    private int second;

    //get and set
    public int getFirst() {
    return first;
    }

    public void setFirst(int first) {
    this.first = first;
    }

    public int getSecond() {
    return second;
    }

    public void setSecond(int second) {
    this.second = second;
    }

    //求运算结果
    public int getResult(){
    return 0;
    }
    }

/**

  • @Author: cxh

  • @CreateTime: 17/12/31 17:57

  • @ProjectName: JavaBaseTest
    */
    public class OperationAdd extends Operation {

    @Override
    public int getResult(){
    return super.getFirst()+super.getSecond();
    }

    @Override
    public void setFirst(int first) {
    super.setFirst(first);
    }
    @Override
    public void setSecond(int second) {
    super.setSecond(second);
    }
    }

/**

  • @Author: cxh

  • @CreateTime: 17/12/31 18:04

  • @ProjectName: JavaBaseTest
    */
    public class OperationSubs extends Operation {

    @Override
    public int getResult() {
    return super.getFirst()-super.getSecond();
    }

    @Override
    public void setFirst(int first) {
    super.setFirst(first);
    }

    @Override
    public void setSecond(int second) {
    super.setSecond(second);
    }
    }

/**

  • @Author: cxh

  • @CreateTime: 17/12/31 18:16

  • @ProjectName: JavaBaseTest
    */
    public class OperationMul extends Operation {

    @Override
    public int getResult() {
    return super.getFirst()*super.getSecond();
    }

    @Override
    public void setFirst(int first) {
    super.setFirst(first);
    }

    @Override
    public void setSecond(int second) {
    super.setSecond(second);
    }
    }

/**

  • @Author: cxh

  • @CreateTime: 17/12/31 18:28

  • @ProjectName: JavaBaseTest
    */
    public class OperationDevide extends Operation {
    @Override
    public int getResult() {
    try{
    return super.getFirst()/super.getSecond();
    }catch (Exception e){
    System.out.println("错误信息列表:"+e);
    return -1;
    }
    }

    @Override
    public void setFirst(int first) {
    super.setFirst(first);
    }

    @Override
    public void setSecond(int second) {
    super.setSecond(second);
    }
    }

/**

  • @Author: cxh
  • @CreateTime: 17/12/31 17:50
  • @ProjectName: JavaBaseTest
    /
    public class OperationFactory {
    public static Operation createOperation(String s){
    switch (s){
    case "+":
    return new OperationAdd();
    case "-":
    return new OperationSubs();
    case "
    ":
    return new OperationMul();
    case "/":
    return new OperationDevide();
    }
    return null;
    }
    }

输出结果:33

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读