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

  • 相关阅读:
    Shell编程-05-Shell中条件测试与比较
    Shell编程-04-Shell中变量数值计算
    Shell编程-03-Shell中的特殊变量和扩展变量
    Shell编程-02-Shell变量
    Shell编程-01-Shell脚本初步入门
    Windows与Linux相互远程桌面连接
    awk基础05-自定义函数和脚本
    使用Kafka Connect创建测试数据生成器
    设置KAFKA
    Apache Kafka使用默认配置执行一些负载测试来完成性能测试和基准测试
  • 原文地址:https://www.cnblogs.com/zhaoyx/p/1971155.html
Copyright © 2011-2022 走看看