简单工厂模式(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);
            }
        }
    }

posted @ 2011-03-04 18:22  不弃的追求  阅读(287)  评论(0编辑  收藏  举报