我有一个包含两个相关函数(方法)的类:
public class class1
{
public void SubscribeToListOfEvents()
{
// ....
}
public void UnSubscribeFromListOfEvents()
{
// ....
}
}
在一个班级中使用相关功能的最佳做法是什么?
您是否知道相关功能的任何实现是一个功能?他们好吗?他们在什么情况下好?如果是这样,你能举个例子吗?
以上代码的任何可用选项都将受到赞赏。
答案 0 :(得分:2)
如果这些函数在逻辑上属于该类,那么它们就是这样。
一个类应该是cohesive,并且通常执行操作的方法也应该定义镜像操作(订阅/取消订阅,添加/删除等...)。
你已经很好地命名了它们,因为它们描述了它们的作用 - 你如何命名合并的名称?最好将它们分开,因为这样它们是自我记录的,不会混淆类的用户。
答案 1 :(得分:0)
使用您提供的示例,它们是相关的 - 但仅仅是因为它们可能使用相同的数据或对象集。
我个人不会将这些合并为一个功能。虽然它可能是更多的打字,但是更容易阅读和维护以使它们分开。当调用这两个函数中的任何一个时,很明显会发生什么 - 如果要合并它们,那么它就不那么明显了。这是一个简单的例子 - 如果你要合并两个更复杂的函数,那么事情就会变得非常模糊,你最终可能会因调用合并函数而产生意想不到的副作用。
记住KISS - 保持简单,愚蠢:)对于每个功能,请尝试并遵循SRP - Single Responsibility Principle。虽然维基百科在类/对象级别讨论SRP,但没有理由不在可行的情况下在功能级别应用它。
答案 2 :(得分:-1)
不要合并它们,制作一个会强制你实现这两种方法的界面
interface ISubscriber
{
void Subscribe();
void Unsubscribe();
}