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());
        
    萌橙 你瞅啥?
  • 相关阅读:
    C++ 编译时字符串加密
    c#自动修复缺损和不规范的html
    C#下载网络资源(网页或文件)
    yum install 命令下载安装离线包
    C# Sql Server 数据库 传递 表值参数
    cximage 裁剪图片并背景透明
    centos 7.5 编译并运行 opencv 4.5.1 c++
    c++ freeimage 指定颜色透明
    c++ string 大小写转换
    opencv 裁剪图像
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/12082408.html
Copyright © 2011-2022 走看看