zoukankan      html  css  js  c++  java
  • 简单工厂模式(simple factory pattern)

      自我理解:我们可以把一个对象肢解成不同的部分,比如一支笔,可以分解成笔壳、笔芯,此时有一个工厂是生产笔壳的,而另一个工厂是生产笔芯的,假如我想买笔壳,我就到生产笔壳的工厂去买,而如果我想要笔芯,我又要跑到生产笔芯的工厂去买,这对于我很浪费时间,我想假如有一个工厂生产笔芯,又生产笔壳多好啊,此时,我发现了这个商机,我成立了一个工厂,我把生产笔壳和生产笔芯的工厂都收购了,成立了一个新工厂,这个工厂即提供笔壳又提供笔芯。

      简单工厂模式的核心是:假如你向我购买笔芯,你不必关心我去哪个工厂去买,而我能给你提供笔芯。

    以上是我个人的理解,欢迎批评指正。

    下面是一个例子:

    public class Namer
        {
            protected string frName, lName;

            public string getFrname()
            {
                return frName;
            }

            public string getlName()
            {
                return lName;
            }
        }

    public class FirstFirst:Namer  ---------(工厂一)
        {
            public FirstFirst(string name)
            {
                int i = name.Trim().IndexOf(" ");
                if (i > 0)
                {
                    frName = name.Substring(0, i).Trim();
                    lName = name.Substring(i + 1).Trim();
                }
                else
                {
                    lName = name;
                    frName = "";
                }
            }
        }

    public class LastFirst:Namer  ---------(工厂二)
        {
            public LastFirst(string name)
            {
                int i = name.IndexOf(",");
                if (i > 0)
                {
                    lName = name.Substring(0, i);
                    frName = name.Substring(i + 1).Trim();
                }
                else
                {
                    lName = name;
                    frName = "";
                }
            }
        }

    public class NameFactory   ---------(我的工厂)
        {
            public NameFactory()
            {
     
            }
            public Namer getName(string name)
            {
                int i = name.IndexOf(",");
                if (i > 0)
                {
                    return new LastFirst(name);
                }
                else
                {
                    return new FirstFirst(name);
                }
            }
        }

  • 相关阅读:
    async和await
    Promise
    初始flexbox
    制作一个slider动画
    初探React编程逻辑(结合业务需求)
    原型(prototype)和继承(inherit)
    什么是词法环境(lexical scope)
    typeScript是什么
    typeScript基础类型
    原型,原型链,call/apply
  • 原文地址:https://www.cnblogs.com/zhaoyx/p/1971155.html
Copyright © 2011-2022 走看看