这种违反单一责任原则的好处是什么?

时间:2014-04-04 09:01:12

标签: java oop design-patterns

此代码取自org.glassfish.jersey.grizzly2项目,方法名称表示,createHttpServer应负责“仅”用于创建和返回{{1}的实例1}}类,我只是想知道为什么要以这种方式封装HttpServer调用?

HttpServer.start

2 个答案:

答案 0 :(得分:1)

这是一个公共API方法,而不是类。

Single responsibility principle in wiki

  

每个班级都应该承担一项责任,并且该责任应该由班级完全封装。

SRP旨在实现松散耦合和稳健性。它确实有助于开发人员保持相同,同时保持其良好运作。

所以,如果有一些内部方法或类,我会同意。


公共API的设计目标完全不同。

  • 首先要确保的是易用性
  • 您的软件也应隐藏实施和设计的内部特性。
  • 如果用户正在调用此方法,并且不知道要求调用其他方法启动,则他/她会感到困惑。我们不能强迫用户了解软件的整个工作流程,即手动调用每个小步骤。

希望这有帮助。

答案 1 :(得分:0)

我看到的唯一优势是用户必须编写更少的代码。我完全不同意这种做法。如果它说“创建”,那么它应该只创建。无论如何,就其在文件中明确规定而言,这样做是“可以的”......这不是我见过的最严重违反SRP的行为......