在一个类中使用相关函数

时间:2010-07-27 11:47:12

标签: c#

我有一个包含两个相关函数(方法)的类:

public class class1
{
    public void SubscribeToListOfEvents()
    {
        // ....
    }

    public void UnSubscribeFromListOfEvents()
    {
        // ....
    }
}

在一个班级中使用相关功能的最佳做法是什么?

您是否知道相关功能的任何实现是一个功能?他们好吗?他们在什么情况下好?如果是这样,你能举个例子吗?

以上代码的任何可用选项都将受到赞赏。

3 个答案:

答案 0 :(得分:2)

如果这些函数在逻辑上属于该类,那么它们就是这样。

一个类应该是cohesive,并且通常执行操作的方法也应该定义镜像操作(订阅/取消订阅,添加/删除等...)。

你已经很好地命名了它们,因为它们描述了它们的作用 - 你如何命名合并的名称?最好将它们分开,因为这样它们是自我记录的,不会混淆类的用户。

答案 1 :(得分:0)

使用您提供的示例,它们是相关的 - 但仅仅是因为它们可能使用相同的数据或对象集。

我个人不会将这些合并为一个功能。虽然它可能是更多的打字,但是更容易阅读和维护以使它们分开。当调用这两个函数中的任何一个时,很明显会发生什么 - 如果要合并它们,那么它就不那么明显了。这是一个简单的例子 - 如果你要合并两个更复杂的函数,那么事情就会变得非常模糊,你最终可能会因调用合并函数而产生意想不到的副作用。

记住KISS - 保持简单,愚蠢:)对于每个功能,请尝试并遵循SRP - Single Responsibility Principle。虽然维基百科在类/对象级别讨论SRP,但没有理由不在可行的情况下在功能级别应用它。

答案 2 :(得分:-1)

不要合并它们,制作一个会强制你实现这两种方法的界面

 interface ISubscriber
 {
        void Subscribe();
        void Unsubscribe();
 }