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

第8章《工厂方法模式》

发布时间:2020-12-13 20:56:00 所属栏目:百科 来源:网络整理
导读:/** @Author: cxh @CreateTime: 18/1/3 23:32 @ProjectName: JavaBaseTest */ public interface Operation { void setFirst(int first); void setSecond(int second); int getResult(); } /** @Author: cxh @CreateTime: 18/1/3 23:30 @ProjectName: JavaBas

/**

  • @Author: cxh
  • @CreateTime: 18/1/3 23:32
  • @ProjectName: JavaBaseTest
    */
    public interface Operation {
    void setFirst(int first);
    void setSecond(int second);
    int getResult();
    }


/**

  • @Author: cxh

  • @CreateTime: 18/1/3 23:30

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

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

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

    public int getResult(){
    return first+second;
    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/3 23:43

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

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

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

    @Override
    public int getResult() {
    return first*second;
    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/3 23:43

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

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

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

    @Override
    public int getResult() {
    return first*second;
    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/3 23:44

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

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

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

    @Override
    public int getResult() {
    try{
    return first/second;
    }catch (Exception e){
    return 0;
    }
    }
    }



/**

  • @Author: cxh
  • @CreateTime: 18/1/3 23:33
  • @ProjectName: JavaBaseTest
    */
    public interface CreateFactory {
    Operation getOperation();
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/3 23:34
  • @ProjectName: JavaBaseTest
    */
    public class AddFactory implements CreateFactory {
    @Override
    public Operation getOperation() {
    return new AddOperation();
    }

}

/**

  • @Author: cxh
  • @CreateTime: 18/1/3 23:36
  • @ProjectName: JavaBaseTest
    */
    public class SubFactory implements CreateFactory {
    @Override
    public Operation getOperation() {
    return new SubOperation();
    }
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/6 11:43
  • @ProjectName: JavaBaseTest
    */
    public class MulFactory implements CreateFactory {
    @Override
    public Operation getOperation() {
    return new MulOperation();
    }
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/6 11:43
  • @ProjectName: JavaBaseTest
    */
    public class DivFacotry implements CreateFactory {
    @Override
    public Operation getOperation() {
    return new DivOperation();
    }
    }


/**

  • @Author: cxh

  • @CreateTime: 18/1/6 11:44

  • @ProjectName: JavaBaseTest
    */
    public class Client{
    public static void main(String[] args) {
    CreateFactory factory;
    Operation operation;

     //加法
     factory=new AddFactory();
     operation=factory.getOperation();
     operation.setFirst(11);
     operation.setSecond(22);
     System.out.println("11+22="+operation.getResult());
    
     //减法
     factory=new SubFactory();
     operation=factory.getOperation();
     operation.setFirst(11);
     operation.setSecond(22);
     System.out.println("11-22="+operation.getResult());
    
     //乘法
     factory=new MulFactory();
     operation=factory.getOperation();
     operation.setFirst(11);
     operation.setSecond(22);
     System.out.println("11*22="+operation.getResult());
    
     //除法
     factory=new DivFacotry();
     operation=factory.getOperation();
     operation.setFirst(22);
     operation.setSecond(11);
     System.out.println("22/11="+operation.getResult());

    }
    }

输出:

(编辑:李大同)

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

    推荐文章
      热点阅读