【发布时间】:2013-10-09 11:35:43
【问题描述】:
我是一个肮脏的 c# 程序员,今天我正在阅读一位高级开发人员的代码,我意识到他们将每个“事物”都变成了一个对象“一个类”,并遵循“抽象工厂”之类的模式,并创建了接口、抽象基类等 我发现很难完全理解代码,以及抽象和接口+工厂关系背后的原因。 我看视频并单独理解它们,但当我试图在这种情况下理解它们时,我把它们全部放在一起,这让我很失望。
回到问题(因为隐私,我更改了对象名称)
这是我无法理解的课程部分,因为它应用了什么模式或原则,
internal sealed class Mango : GenericMango, IMango
{
public static readonly IMangoFactory<IMango> Factory;
static Mango()
{ // this line below specially i don't understand
Factory = new MangoFactory<IMango>((aBC, disposeMango) => new Mango(aBC, disposeMango));
}
private Mango(string aBC, bool disposeMango)
: base(aBC, disposeMango)
{
}
// more methods and properties in here etc..
【问题讨论】:
-
在哪个库中可以找到工厂类?这似乎是一种 IoC / 依赖注入模式。
-
eatableMango位是最令人困惑的位。试试edibleMango,应该可以! -
看起来
MagoFactory接受了Func<string, bool>,他将其作为 lambda 表达式传入。如果您的问题源于 lambda 表达式或委托,那么网上有很多资源可以为您提供一个起点。 -
@musefan 应您的要求我将 eatableMango 更改为 DisposeMango
-
我发现这段代码有一些缺陷。如果每种类型都拥有它的
Factory,那么根本不需要工厂。工厂用于根据输入创建不同类型的实例。但是这个工厂似乎只创建了Mango。如果我错了,请纠正我。 Factory Pattern.
标签: c# design-patterns object-oriented-analysis