using System;
using System.Collections.Generic;
using System.Text;
namespace SharpDevelop设计模式.类库
{
/// <summary>
/// factory 模式从若干个可能类创建对象,例如.如果正在处理一个接口,
/// 那么可以使用factory来创建一个实现接口的对象,factory可以返回给我们的实现
/// 在需要从终端产品抽象化对象创建时,(例如 在构造函数不够合适的情况下)
/// factory非常有用
/// </summary>
public interface IHelloPrinter
{
void PrintHello();
}
public class EnglishHelloPrinter : IHelloPrinter
{
public void PrintHello()
{
System.Console.WriteLine("Hello World");
}
}
public class ChineseHelloPrinter : IHelloPrinter
{
public void PrintHello()
{
System.Console.WriteLine("世界,你好");
}
}
public class HelloFactory
{
public IHelloPrinter CreateHelloPrinter(string language)
{
switch(language)
{
case "cn" :
return new ChineseHelloPrinter();
case "en" :
return new EnglishHelloPrinter();
}
return null;
}
}
}
using System.Collections.Generic;
using System.Text;
namespace SharpDevelop设计模式.类库
{
/// <summary>
/// factory 模式从若干个可能类创建对象,例如.如果正在处理一个接口,
/// 那么可以使用factory来创建一个实现接口的对象,factory可以返回给我们的实现
/// 在需要从终端产品抽象化对象创建时,(例如 在构造函数不够合适的情况下)
/// factory非常有用
/// </summary>
public interface IHelloPrinter
{
void PrintHello();
}
public class EnglishHelloPrinter : IHelloPrinter
{
public void PrintHello()
{
System.Console.WriteLine("Hello World");
}
}
public class ChineseHelloPrinter : IHelloPrinter
{
public void PrintHello()
{
System.Console.WriteLine("世界,你好");
}
}
public class HelloFactory
{
public IHelloPrinter CreateHelloPrinter(string language)
{
switch(language)
{
case "cn" :
return new ChineseHelloPrinter();
case "en" :
return new EnglishHelloPrinter();
}
return null;
}
}
}