Creational Pattern之simple factory pattern

    简单工厂模式根据提供给它的数据返回几个可能类中的一个实例.通常返回的类有共同的基类和方法,但执行不同的操作,而且可以根据数据的做响应优化. 

 

using  System;

namespace  NameFactory
{
    
/// <summary>
    
/// Summary description for NameFactory.
    
/// </summary>

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

    }

}

 

 

using  System;

namespace  NameFactory
{
    
/// <summary>
    
/// Summary description for FirstFirst.
    
/// </summary>

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

            
else {
                lName 
= name;
                frName 
= "";
            }

        }

    }

}

using  System;

namespace  NameFactory
{
    
/// <summary>
    
/// Summary description for LastFirst.
    
/// </summary>

    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 
= "";
            }

        }

    }

}

很显然,NameFactory   就是所谓的决策类,将根据传入条件的不同,返回不同的实例.即 :

或则返回LastFirst,或则FirstFirst ,但它们有一个共同的特点,都派生自Namer,拥有共同的属性和操作.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值