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();

  • 相关阅读:
    Cesium加载Geoserver wtms服务和wms服务
    使用GeoServer+PostgreSQL+PostGIS+OpenLayers3
    Cesium 绕点旋转飞行效果
    时间分片技术(解决 js 长任务导致的页面卡顿)
    Cesium随笔:视锥绘制(下)
    使用geoserver发布arcgis切片
    Cesium点击获取模型或者地形点的位置
    npm库使用roullup封装经验总结
    一个删除node_modules文件夹的脚本
    cesium点击面高亮事件
  • 原文地址:https://www.cnblogs.com/zhanjun/p/3861723.html
Copyright © 2011-2022 走看看