【问题标题】:c# - Unique instance of a subclassc# - 子类的唯一实例
【发布时间】:2015-04-30 02:16:27
【问题描述】:

我在这里问这个问题是因为我没有找到答案...也许我不是在寻找合适的术语...

我的问题很简单,我有一个 C# 接口类,问题是程序的要求之一是程序中应该只有一个这种“类型”类的实例......

我的想法是让它成为一个单例类,例如我有一个名为 ProductionCriteria 的接口,它应该是 3 个不同的子类,一个是给定的排序标准,另外两个也是不同的标准......

那么,我该怎么做才能同时拥有任何给定子类的一个实例?

另一个例子,用户选择了Criteria(OrderByDate)所以有一个实现ProductionCriteria的CriteriaByDate类的实例,但是在生产之后,用户将条件更改为CriteriaByMaxAmount,所以,我需要的是这个子类ocupe第一个创建的同一个实例?

我不知道这是否有意义,但我非常感谢任何帮助。

谢谢。

【问题讨论】:

    标签: c# interface singleton instance subclass


    【解决方案1】:

    您是否考虑过使用带有工厂模式的单例?

    【讨论】:

    • 嗯,没想到工厂...会违反 OC 对吧?
    • @user986056 超频?不知道你指的是什么:)
    • Sorry Open Closed 原理?我的第一语言不是英语,所以我在这些方面有点落后......
    • 不,它不会违反 OC,这是一个非常不同的概念。 OC 意味着如果您的类支持插件式可扩展性模型(或多或少),那么您可以更改它的行为而无需重新编写它。这个概念与单例和工厂没有冲突。您可以在此处了解有关 OC 的更多信息:en.wikipedia.org/wiki/Open/closed_principle。注意:OC 需要大量练习来学习如何正确操作 :)。开始有点违反也没关系,这就是你学习和成长的方式
    • 非常感谢,我会看看工厂模式,看看我是否可以通过它工作。再次感谢!!
    猜你喜欢
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 2018-01-12
    • 2012-02-17
    • 1970-01-01
    相关资源
    最近更新 更多