3.要撒了欢的干 -- 工厂方法模式
书接上回。
上文书说到农民甲和农民乙有着各自不同的想法,一个种花生豆,一个种毛豆,而且都获得了大丰收。
接着说说工厂方法模式。
---------------------------------------------------------------------------------------------------------------------------
先送上图例。
农民乙是个聪慧的人,他更有想法,他主动与多拉多种子公司(IFactory),建立了良好的战略合作伙伴关系。
该种子公司实力雄厚,拥有花生分公司(PignutFactory)和毛豆分公司(SoybeanFactory)。
好像物质上的富足也能带来精神上的愉悦吧,农民乙开始不满足于面朝黄土背朝天的小打小闹的个人生产,他心里盘算着要扩大生产,于是他成立了自己的小作坊,租赁了大块的土地,根据季节时令买入一些花生种和毛豆种,雇佣一些闲散工为他种豆。
猪年快到了,农民乙请种子公司的专家来他的土地田做实地考察,专家得出结论,猪年种花生豆比较好。
于是农民乙给多拉多种子公司打电话联系,该公司从花生分公司为农民乙引进了大量的花生种,种花生取得了好丰收。
转眼间,鼠年也快到了,农民乙故伎重施,该年联系毛豆分公司种毛豆,也毅然决然的毫无悬念的取得了好丰收。
农民乙请闪电把他的丰功伟绩记录下来,表示为……
public abstract class Legume
{
public virtual string GetFruit()
{
return string.Empty;
}
}
class Pignut : Legume
{
public override string GetFruit()
{
return "俺是农民乙,俺要扩大生产,多拉多种子公司你今年给我花生种子,我看今年这个成!";
}
}
class Soybean : Legume
{
public override string GetFruit()
{
return "俺是农民乙,俺要扩大生产,多拉多种子公司你今年给我毛豆种子,我看今年这个成!";
}
}
interface IFactory
{
Legume CreateLegume();
}
class PignutFactory : IFactory
{
public Legume CreateLegume()
{
return new Pignut();
}
}
class SoybeanFactory : IFactory
{
public Legume CreateLegume()
{
return new Soybean();
}
}
static void Main(string
作者:LevinLee
Email: levinleeboy#gmail.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器