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

  • 相关阅读:
    Java之List使用方法
    Java之数组遍历
    收集关于前端的一些网站、博客资源、框架、源码等 、 会持续更新哦!!!!!
    css常用代码含义
    css两列等高布局
    HTML之DocType的几种类型
    CSS实现圆角的方法
    IE6图片元素img下出现多余空白问题
    web标准常见问题整理
    好的 Web 前端年薪会有多少?
  • 原文地址:https://www.cnblogs.com/zhaoyx/p/1971155.html
Copyright © 2011-2022 走看看