Java应用程序架构混乱

Java应用程序架构混乱,java,Java,为什么通过接口调用另一层的方法实现(例如从服务调用DAO层)是最佳做法?主要原因是这样您就可以在不更改客户端代码的情况下更改该层的实现 看看它的n层架构,其中n=1,2..n。N层体系结构的目的是将应用程序的不同层彼此隔离。让我们以web应用程序为例。GUI客户端(JSP/Thick client/MobileAPP等)不知道服务器内部如何工作,服务器也不知道数据库服务器内部如何工作等。它们只是通过标准接口进行通信。如果要将DB更改为JMS或webservice,则只需更改impl*类而不更改接

为什么通过接口调用另一层的方法实现(例如从服务调用DAO层)是最佳做法?

主要原因是这样您就可以在不更改客户端代码的情况下更改该层的实现


看看它的n层架构,其中n=1,2..n。N层体系结构的目的是将应用程序的不同层彼此隔离。让我们以web应用程序为例。GUI客户端(JSP/Thick client/MobileAPP等)不知道服务器内部如何工作,服务器也不知道数据库服务器内部如何工作等。它们只是通过标准接口进行通信。如果要将DB更改为JMS或webservice,则只需更改impl*类而不更改接口

将应用程序组件分为不同的层可以提高应用程序的可维护性和可伸缩性。它通过更容易地采用新技术来实现这一点,这些新技术可以应用于单个层,而无需重新设计整个解决方案。 此外,n层应用程序通常将敏感信息存储在中间层,以保持与表示层的隔离

这也有助于轻松地进行测试、维护和调试


建议你阅读,简单的做法是抽象。。您隐藏了实际的实现,只公开了定义……例如,List是一个接口,ArrayList和LinkedList是实现。。。。在将来,您可能需要更改实现,并且在接口就绪的情况下,您将不会更改客户端代码。。。您将在不影响客户端的情况下更改实现类