zoukankan      html  css  js  c++  java
  • 设计模式-抽象工厂模式(二)

    计算器实例

    1.运算基类

     public class OperateBase
        {
            private float _number = 0.0f;
    
            private float _secondnumber = 0.0f;
            public float Number
            {
                get
                {
                    return _number;
                }
    
                set
                {
                    _number = value;
                }
            }
    
            public float Secondnumber
            {
                get
                {
                    return _secondnumber;
                }
    
                set
                {
                    _secondnumber = value;
                }
            }
    
            public virtual float ComputeResult() { return 0; }
        }

    2.运算结果类

    public class MulOperate:OperateBase
        {
            public override float ComputeResult()
            {
                return Number / Secondnumber;
            }
        }

    3.加法运算结果

      public  class AddOperate:OperateBase
        {
            public override float ComputeResult()
            {
                return Number+Secondnumber;
            }
        }

    4.减法运算结果

     public class SubOperate:OperateBase
        {
            public override float ComputeResult()
            {
                return Number - Secondnumber;
            }
        }

    5.乘法运算结果

     public class DivOperate:OperateBase
        {
            public override float ComputeResult()
            {
                return Number*Secondnumber;
            }
        }

    6.除法运算结果

    public class MulOperate:OperateBase
        {
            public override float ComputeResult()
            {
                return Number / Secondnumber;
            }
        }

    7.抽象工厂

     public interface IFactory
        {
            OperateBase CreateOperate();
        }

    8.加法实现

    public class AddFactory : IFactory
        {
            public OperateBase CreateOperate()
            {
                return new  AddOperate();
            }
        }

    9.减法实现

     public class SubFactory : IFactory
        {
            public OperateBase CreateOperate()
            {
                return new SubOperate();
            }
        }

    10.乘法实现

     public class DivFactory : IFactory
        {
            public OperateBase CreateOperate()
            {
                return new DivOperate();
            }
        }

    11.除法实现

      public class MulFactory : IFactory
        {
            public OperateBase CreateOperate()
            {
                return new MulOperate();
            }
        }

    12.调用

                IFactory facotry = new DivFactory();
                OperateBase add = facotry.CreateOperate();
                add.Number = 1;
                add.Secondnumber = 1;
                Console.WriteLine(add.ComputeResult());
        
    萌橙 你瞅啥?
  • 相关阅读:
    pip install MySQL-python 失败
    E: Unable to correct problems, you have held broken packages
    git 提交顺序
    git 分支
    ubuntu 安装git
    ubuntu 有些软件中不能输入中文
    ubuntu 完全卸载mysql
    Linux中常用操作命令
    基于注解的Spring AOP的配置和使用
    log4j配置详解
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/12082408.html
Copyright © 2011-2022 走看看