java - 设计面向对象的系统/GUI

标签 java oop architecture

我面前有一个非常大的项目,我打算使用 Java 进行开发。我不是 Java 专家,但我以前使用过它,并期待了解更多关于它的信息。

我已经开始研究这个项目,但随着我继续工作,我意识到我一直忽视整个项目的不同要求,或者我可以通过更好的对象设计更有效地实现的不同事物。

对于那些经常构建面向对象系统的人来说,你们都找到了哪些方法可以使您的最终结果更有效和高效地工作?即:是否有用于确定系统架构的分步程序,例如

  • 制定要求
  • 兴趣相似的团体要求
  • 映射依赖项
  • 等等

  • 大家可以提供有关构建面向对象系统的有效方法的任何指针,我们将不胜感激。

    注意 - 这是一个基于 gui 的应用程序。因此,我计划采用 MVC 方法(模型是 MySQL 数据库, Controller 是 GUI 类的代码隐藏类, View 是 GUI 类)。如果还有用于为 GUI 构建面向对象系统的特定技术,请将它们留在这里。

    先感谢您。

    最佳答案

    这是一个非常快速的尝试,可以写下我在我自己的个人大小的项目中所做的(有点)。 (这可能不是你想要的,但它可能会有所帮助。有些部分可能不相关):

  • 想想我正在努力实现什么与软件项目和 我的动机 因为这样做。仅仅是为了学习一门语言、技术或概念吗?是尽可能地构建一个非常完善的程序吗?是为了给某人留下深刻印象吗?是因为我必须这样做还是达到目的的一种手段?是为了培养我的技能吗?纯粹是为了好玩吗?
  • 确保我有一个 清晰的主要特点它应该有(“对于这个版本”是我一直给自己的一个很好的说法)
  • 写出一样多要求 尽我所能,直到它们变得不那么容易(我在家里运行的维基上这样做)。它不必是一大堆。我希望感觉自己拥有约 80% 的真正重要的东西。
  • 如果我不知道这个阶段,锻炼 某种想法 过程和工具 (方法论)我要使用。什么语言、什么框架等可能是相关的。如果我不知道,我会发现。
  • 迭代上述直到我对我想要构建的东西有了足够好的想法,我将如何去做以及使用什么。
  • 创建 项目在 视觉范式 对于 UML。
  • 开始乱搞 开发用例问题域分析UML模型
  • 创建 一些 静态问题域图 .只是基本的类图我在这里使用 UML,但它与软件无关。
  • 创建 一些 动态问题域图 .只是基本的序列图。我在这里使用 UML,但它与软件无关。
  • 迭代 问题域 .我通常发现开发问题域模型不需要很长时间就可以非常稳定。显然,这将随着范围和复杂性的增加而改变。
  • 创建 解决方案域分析/架构模型和 为解决方案开发用例 .
  • 如果有的话 UI设计有待完成,我会开始考虑和线框图 这里与用例一起。
  • 创建 一些 静态解决方案域分析图我尝试将一些静态分析模型翻译成看起来更像软件结构的东西,而不考虑如何实现它。我从高处开始,在低处工作,试图充实一个架构。在这一点上,我将开始寻找可能应用模式的明显结构和位置。
  • 创建 一些 动态解域分析图我尝试通过查看当我实际尝试和演练系统时是否遗漏任何东西来充实静态分析模型。仍然密切关注这里的模式。
  • 创建 一些 静态解决方案域设计图 我尝试将解决方案分析模型转换为我想要实现的实际类和组件。我开始高,工作低。模式和架构必须在这里开始结晶。
  • 创建 一些 动态解决方案域图我尝试通过查看是否缺少任何类或功能来充实静态模型。我发现在这个阶段很多重要的问题都得到了解答。
  • 迭代 到上一个迭代点的所有步骤并改进模型,直到我得到一些我很乐意开始实现的东西。
  • 设置 构建环境 (如有必要)
  • 在 IDE 中创建项目 我要使用和设置版本控制 .
  • 建立构建系统
  • 实现 根据解决方案设计。
  • 更新 各种 UML 模型 和图表,因为我在实现设计时遇到了无法预料的问题。
  • 执行 任何手册 验证 我需要(通常只是临时系统测试来说服自己看看我是否满足了我的要求)。
  • 迭代 最后三个步骤,直到系统有效,我很乐意在结果上加上我的姓名首字母。
  • 想出下一个功能 添加和 迭代 从大约第 7 步开始!

  • 我想总结一下,我严重依赖多个级别的 UML 建模。没有什么可以替代布置类和跟踪与我可以快速拖动和连接的实体的交互。我发现问题和解决方案领域的分离以及分析和设计模型通常非常有用和解放。

    我希望这对某人感兴趣。

    关于java - 设计面向对象的系统/GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989158/

    相关文章:

    architecture - 什么是优秀的软件架构?

    java - 如何迭代非空字符串?

    java - LoggerFactory - 输出位置

    java - 如何修复此 JTextArea 格式错误?

    python - 只能从 python 中的类后代访问的方法

    c++ - 在 C++ 中重载显式构造函数

    python - 方法的装饰器参数不能是基于类的静态成员的列表理解

    java - 来自客户端的用户输入不会发送到服务器

    java - 了解应用架构

    javascript - 不确定如何在 Express/MongoDB 应用程序中处理数据访问对象/层