如何设计Java应用程序?

Dus*_*nth 23 java application-design

在设计Java应用程序[J2EE应用程序的简单控制台应用程序]时,要记住哪些一般准则和最佳实践?

你好

我最近完成了Sun的Java编程教程并练习了核心java(我之前有编程经验).现在我理解了继承,抽象,多态,封装的基础知识

现在我正在编写Java代码没有太大困难,但我不确定应用程序设计.这是我的主要问题:"设计"应用程序.假设我已经完成了用Java创建应用程序的任务,我该怎么做?怎么想?在开发类层次结构时我应遵循的任何正式/非正式指南?我真的很困惑(抽象类或接口或子类......?).在编写代码之前,我应该从模型开始吗?

对于像我这样的人来说,拥有一套通用指南/最佳实践非常有用,我们可以在开始开发新的Java应用程序时遵循这些指南.

请提供一些我应该阅读或使用的指南/想法/书籍/资源/工具

在此先感谢斯科特

Pét*_*rök 14

由于在不同的域上存在许多不同的Java应用程序,因此很难提供真正的一般性建议.但是,一本绝对推荐的书是Eric Evans的Domain Driven Design.另请参阅维基百科的简短介绍.

一般建议:

  • 不要试图预先设计一切 - 做一个相当好的设计,使你能够开始编码,然后重构,因为你对问题领域的理解和实施加深
  • 尝试将难题分成更小的部分/步骤/模块,您可以逐个解决
  • 尝试用具有明确职责的对象来思考,这些(或多或少)模拟问题域并合作解决问题/处理任务
  • 擅长设计需要实践,首先是; 不要害怕犯错误.但是,当您这样做时,请分析它们并尽可能多地从中学习
  • 学习设计模式,但不要过分热心 - 只有在真正解决问题并使代码更清洁时才使用它们


Ara*_*ram 5

在我看来,这一切都归结为满足以下要求

  1. 容易明白
  2. 易于维护和发展
  3. 多个开发人员能够为项目做出贡献(主要是并行)

为实现上述目标,专家根据经验提出了一些指导原则和原则

  1. 遵循分层架构
  2. 在层内和层之间遵循SOLID原则.所有设计模式都是单向或另一种帮助仅实现这些原则.SRP:单一责任原则,OCP:开放封闭原则,LSP:Liskov替换原则,ISP:接口隔离原则,DIP:依赖性倒置原则
  3. DRY和KISS原则

这些指南和原则独立于任何编程范例或语言.但是,OOP语言有助于实现这些更容易.