我正在寻找一些违反单一职责原则的优秀代码示例。不要给我看鲍勃叔叔的书或网站上的任何例子,因为它们在互联网上到处都是,就像这样:

interface Modem
{
    public void dial(String pno);
    public void hangup();
    public void send(char c);
    public char recv();
}

最佳答案

您的 OO 设计的粒度是品味问题,可能对其他人不合适。因此,我不会在某些业务逻辑类中寻找打破单一职责原则的例子,讨论它是否有太多或太少的事情要做。

在我看来,最好的例子(有最坏的副作用)来自打破应用程序的分层。例如:

  • 在数据访问层执行业务逻辑(其唯一职责应该是提供对应用程序的持久访问)
  • 从(通过)域模型访问业务服务(其唯一职责应该是存储大部分应用程序状态)
  • 在 View 层执行复杂的业务逻辑(负责数据呈现和用户输入)
  • 关于single-responsibility-principle - 违反单一职责原则的最佳例子是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1354624/

    10-14 06:53