相关疑难解决方法(0)

仅允许Factory方法实例化对象(防止实例化基类和未初始化的对象)

我有一个基类来处理"工作".工厂方法根据作业类型创建派生的"作业处理程序"对象,并确保使用所有作业信息初始化作业处理程序对象.

调用工厂方法为Job和Person分配请求处理程序:

public enum Job { Clean, Cook, CookChicken }; // List of jobs.

  static void Main(string[] args)
  {
    HandlerBase handler;
    handler = HandlerBase.CreateJobHandler(Job.Cook, "Bob");
    handler.DoJob();
    handler = HandlerBase.CreateJobHandler(Job.Clean, "Alice");
    handler.DoJob();
    handler = HandlerBase.CreateJobHandler(Job.CookChicken, "Sue");
    handler.DoJob();
  }
Run Code Online (Sandbox Code Playgroud)

结果:

Bob is cooking.
Alice is cleaning.
Sue is cooking.
Sue is cooking chicken.
Run Code Online (Sandbox Code Playgroud)

工作处理程序类:

public class CleanHandler : HandlerBase
{
  protected CleanHandler(HandlerBase handler) : base(handler) { }
  public override void DoJob()
  {
    Console.WriteLine("{0} is cleaning.", Person);
  }
}

public class CookHandler : …
Run Code Online (Sandbox Code Playgroud)

.net c#

9
推荐指数
1
解决办法
4632
查看次数

标签 统计

.net ×1

c# ×1