.Net 设计模式笔记 -- 简单工厂模式

简单的说,简单工厂模式就是有一个类,这个类是一个专门产生类的类(~!@#$!#),先生产这个类的实例,然后调用其方法,传入一个值,传出一个对象,至于这个对象是哪个类的对象,就不知道了,得由类的工厂说了算。

配合类工厂工作的还是一个类,和这个类的若干子类,类工厂返回的就是这些子类的对象。因为这些子类都从其爸爸类那里来的。所以都有一些相似性。

算了,还是等我弄清楚再说吧。

 

using System;
using System.Collections.Generic;
using System.Text;

namespace Mod1
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            NamerFactory namef
=new NamerFactory();
            Namer nm 
= namef.getName("Jack,Q");
            
//Namer nm = namef.getName("Jack Q");
            Console.WriteLine(string.Format("FirstName:{0},LastName:{1}", nm.getFrName(), nm.getLName()));
            Console.Read();
        }

    }


    
public class Namer  //父类
    {
        
protected string frName, lName;

        
public string getFrName()
        
return frName; }

        
public string getLName()
        
return lName; }
    }


    
public class FirstFirst:Namer  //子类1
    {
        
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  //子类2
    {
        
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 NamerFactory  //类的工厂

    
{
        
public NamerFactory()  { }
        
public Namer getName(string name)
        
{
            
int i = name.IndexOf(",");
            
if (i > 0)
                
return new LastFirst(name);
            
else
                
return new FirstFirst(name);
        }

    }
  }

posted on 2007-08-10 10:00  qufo  阅读(255)  评论(0编辑  收藏  举报

导航