zoukankan      html  css  js  c++  java
  • 工厂模式

           前面我有跟大家分享过简单的工厂模式,里面有提到简单工厂模式的缺点"难以扩展",这一缺点在工厂模式里面会解决掉。哪么今天我就来跟大家分享下工厂模式。

           话不多说我们先来看一个工厂模式的例子先:

           public abstract class A//工厂类

          {

                public abstract D abstractA();

          }

          public class B:A

          {

                public override D abstractA()

                 {

                        return new E();

                 }

          }

          public class C:A

          {

                 public override D abstractA()

                 {

                          return new F();

                 }

           }

           public abstract class D

           {

                 public avstact void prind();

           }

            public class E:D

            {

                   public override void prind()

                   {

                         Console.WriteLine("我是E");

                   }

            }

            public class F:D

            {

                    public override void prind()

                    {

                          Console.WriteLine("我是F");

                    }

            }

            class G

            {

                   statric void Main(string []arge)

                  {

                         A ab=new B();

                         A ac=new C();

                         D de=ab.abstractA();

                         D df=ac.absrtactA();

                         de.prind(); 

                         df.prind();

                  }

            }

    输出结果:

         我是E

         我是F

         从代码里我们可以看出工厂模式使用了多态性涉及的几个概念中的抽象方法及重写(不知道多态性的几种概念的可以看看我前面写的多态性),这样我们如果要想在加多个H就只要添加两个类,重写两个抽象类中的抽象方法在用同样的方法调用就ok了;扩展起来将会容易,也符合了开闭原则(即对扩展开通,对修改关闭)。

    如有错误或不足之处欢迎指正,谢谢!!!

  • 相关阅读:
    前端网络安全——其他安全问题
    前端网络安全——密码安全
    前端网络安全——接入层注入
    前端网络安全——点击劫持
    mac重装系统后安装列表
    manjaro踩坑记录
    JavaScript学习过程中遇到的一些坑
    JavaScript学习
    [解决方法] 如何在没有屏幕的情况下训练一些需要显示的程序
    Python中*号的作用详解
  • 原文地址:https://www.cnblogs.com/ljhboke/p/5048939.html
Copyright © 2011-2022 走看看