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

  • 相关阅读:
    【洛谷P2014】选课【树形DP】【背包】
    【洛谷P2014】选课【树形DP】【背包】
    【洛谷P1939】【模板】矩阵加速(数列)
    【洛谷P1939】【模板】矩阵加速(数列)
    小X的液体混合【并查集】
    小X的液体混合【并查集】
    【JZOJ5914】盟主的忧虑【LCA】【并查集】【BFS】
    【JZOJ5914】盟主的忧虑【LCA】【并查集】【BFS】
    Silverlight 4:数据验证-今天的提示-第1部分
    酷的菜单按钮
  • 原文地址:https://www.cnblogs.com/zhanjun/p/3861723.html
Copyright © 2011-2022 走看看