zoukankan      html  css  js  c++  java
  • 6.大话设计模式-工厂模式

    工厂模式和简单工厂有什么区别。废话不多说,对比第一篇例子应该很清楚能看出来。

    优点: 工厂模式弥补了简单工厂模式中违背开放-封闭原则,又保持了封装对象创建过程的优点。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace DesignModel
    {
        public interface Factory
        {
            JS createjs();
        }

        public class JS
        {
            public int NumA { get; set; }
            public int NumB { get; set; }

            public virtual int GetResult()
            {
                return 0;
            }
        }

        public class Add1 : JS
        {
            public override int GetResult()
            {
                return NumA + NumB;
            }

        }

        public class Sub1 : JS
        {
            public override int GetResult()
            {
                return NumA - NumB;
            }
        }

        public class AddFactory : Factory
        {
            public JS createjs()
            {
                return new Add1();
            }
        }

        public class SubFactory: Factory
        {
            public JS createjs()
            {
                return new Sub1();
            }
        }

    }

    客户端调用:

      Factory factory = new AddFactory();
                JS  js = factory.createjs();
                js.NumA = 1;
                js.NumB = 2;
                Console.WriteLine( js.GetResult());


                Factory f = new SubFactory();
                JS J= f.createjs();
                J.NumA = 9;
                J.NumB = 0;
                Console.WriteLine(J.GetResult());
                Console.ReadLine();

  • 相关阅读:
    关于TCP中对于ACK报文是否需要确认的理解
    定时器
    几个错误
    C++继承与组合
    Ubuntu18的Redis: 4.0安装
    Ubuntu18.04:MySQL: 5.7安装与卸载并配置远程登录(服务器装Mysql5.7一条龙服务)
    Ubuntu18服务器修改字体大小
    Ubuntu修改系统时间
    Ubuntu18.04防火墙安装关闭开启操作等
    Ubuntu阿里云镜像源配置
  • 原文地址:https://www.cnblogs.com/zhanjun/p/3861723.html
Copyright © 2011-2022 走看看