违反单一责任原则的最佳例子是什么?

Jon*_*ger 3 single-responsibility-principle solid-principles

我正在寻找一些违反单一责任原则的代码示例.不要向我展示鲍勃叔叔的书籍或网站上的任何例子,因为这些都是在互联网上贴满的,就像这样:

interface Modem
{
    public void dial(String pno);
    public void hangup();
    public void send(char c);
    public char recv();
}
Run Code Online (Sandbox Code Playgroud)

sch*_*edy 11

您的面向对象设计的粒度是一个品味问题,可能不适合其他人.因此,我不会在一些业务逻辑类中寻找违反单一责任原则的例子,讨论它是否有太多或太少的事情要做.

在我看来,最好的例子(具有最差的副作用)来自打破你的应用程序的分层.F.ex:

  • 在数据访问层中执行业务逻辑(其唯一责任应该是提供对应用程序的持久访问)
  • 从(通过)域模型访问业务服务(其唯一责任应该是存储应用程序的大部分状态)
  • 在视图层执行复杂的业务逻辑(负责数据显示和用户输入)