设计模式之工厂方法模式

定义
 
应用场景
 
 
Demo

最后我们看看demo吧,这是一个非常简单的demo,正常来说,工厂模式涵盖的内容很多,思维不要太过局限于demo,更多还应该考虑每个工厂可能还有自己特殊的地方,毕竟已经设计了单独的工厂类了。

以下demo的场景是想找到一个厨师去做饭,厨师角色暂时按照男女厨师来区分。

1 public interface IFactory
2 {
3     ICook GetCooker();
4 }
1 public class ManFactory : IFactory
2 {
3     public ICook GetCooker()
4     {
5         return new IManCook();
6     }
7 }
1 public class WomanFactory : IFactory
2 {
3     public ICook GetCooker()
4     {
5         return new IWomanCook();
6     }
7 }
1 public interface ICook
2 {
3     void DoMeal();
4 }
1 public class IManCook : ICook
2 {
3     public void DoMeal()
4     {
5         Console.WriteLine("男厨师做饭");
6     }
7 }
1 public class IWomanCook : ICook
2 {
3     public void DoMeal()
4     {
5         Console.WriteLine("女厨师做饭");
6     }
7 }
复制代码
 1 public class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         //找男厨师做饭
 6         IFactory manFactory = new ManFactory();
 7         ICook manCook = manFactory.GetCooker();
 8         manCook.DoMeal();
 9 
10         //找女厨师做饭
11         IFactory womanFactory = new ManFactory();
12         ICook womanCook = womanFactory.GetCooker();
13         womanCook.DoMeal();
14     }
15 }
复制代码
posted @   艾心❤  阅读(324)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示