如何学习用Java设计应用程序

如何学习用Java设计应用程序,java,oop,Java,Oop,过去两年我一直在用Java编程,现在我想开始设计应用程序。到目前为止,我只对ie编码感兴趣;我得到了设计文档/类图等,并要求我编写代码。现在我想学习如何设计,我的意思是我想学习什么时候一个类应该是接口而不是具体的类,根据需求、设计技术和设计的所有其他方面提出设计 要了解所有这些,请推荐任何系列的文章/书籍等 我曾经尝试过阅读Headfirst设计模式,但即使我能够掌握一些设计模式,我仍然无法独自着手设计应用程序 请帮忙。这是一个常见的问题,我不怪你问这个问题!这是我们都在思考的事情。您可能会发现

过去两年我一直在用Java编程,现在我想开始设计应用程序。到目前为止,我只对ie编码感兴趣;我得到了设计文档/类图等,并要求我编写代码。现在我想学习如何设计,我的意思是我想学习什么时候一个类应该是接口而不是具体的类,根据需求、设计技术和设计的所有其他方面提出设计

要了解所有这些,请推荐任何系列的文章/书籍等

我曾经尝试过阅读Headfirst设计模式,但即使我能够掌握一些设计模式,我仍然无法独自着手设计应用程序


请帮忙。

这是一个常见的问题,我不怪你问这个问题!这是我们都在思考的事情。您可能会发现此问题及其相关答案非常有用:

改进的唯一方法是阅读设计模式,尝试一些东西,从错误中吸取教训,并从已有经验的人那里获得建议。另一件事是你应该知道什么时候不使用模式。有些时候,我们忽视了设计模式,这会破坏项目。

开始时,请尝试以下方法:

  • 阅读一段关于1种设计模式的文章(如书中所列)
  • 试着去理解它解决的问题
  • 想象一下这个问题的一些任务
  • 编码
  • 在一张纸上绘制程序的类图(没有自动工具)

  • 每天一个模式将是一个非常好的速度。

    设计模式是基于基本原则(如分离关注点、一致性和可扩展性)构建的设计功能的高级示例。如果您正处于对接口和类感到疑惑的阶段,那么您可能需要阅读一些基本的OO思想。例如,阅读有关原则的文章。所以我不会先买一本书,我会从那篇文章开始,然后从那里开始关注链接和谷歌

    那么,阅读是不够的,你需要去做

    下一次你得到一个规格,研究它。了解正在解决的问题,然后回家自己设计。将你的尝试与规格进行比较,或者考虑你给出的规格的替代品,假设你这里没有一个接口,或者在那里的工厂为什么会这样?


    理想情况下,如果你的领导者开始给你一些不太明确的问题,并允许你设计这些问题,你的成长就可以实现。项目压力可能会阻止这一点。在这种情况下,我认为你需要在自己的时间做工作。挑选一些小项目,并着手进行。除非你有导师,否则这可能会很困难,但我认为不做就阅读不会让你进步这么快。

    我同意本的观点,我想补充我的两个BOB

    设计是一门艺术,就像绘画一样,它不是来自书本,而是来自内心

    设计模式之类的概念不是设计的阿尔法和欧米茄,它们是用于创建设计的工具箱的一部分。特别是设计模式为我们提供了描述解决一些常见问题的方法的词汇表。然而,确定要解决的问题是根据需求创建设计艺术的一部分

    请查看与您收到的设计文档相关的需求,以便使用这些文档进行编码。想想设计师将需求分解成一系列有限问题来解决的方式


    当然,不要害怕询问你的设计师他们的方法。

    你可以阅读Josh Bloch的《高效Java》

    设计模式是好的,一定要仔细阅读,但真正的技巧是知道何时使用它们。大多数情况下,你需要把手弄脏

    一个平庸的程序员将被赋予一项任务,敲击键盘直到他们有了工作,然后继续前进。有时候,让某些东西工作起来是正确的做法,但像这样的程序员往往会留下一大堆可怕的代码


    你可以从更学术的方法中学到很多东西。编写一些代码,让它工作,然后改进它。重新写一遍,重复你第一次写的东西。多花些时间看看你能在代码的各个方面改进些什么:速度、内存、算法、设计模式,甚至是你的编码风格。

    学习的最好方法是在实践中学习,并从其他现实项目中学习

    学习设计模式对于设计好的应用程序是至关重要的,但仅此还不够。除了书籍/阅读/示例之外,我建议您仔细阅读现有应用程序的设计。选择一个开源项目——探索、实验并为项目做出贡献。同时,了解项目中使用的设计原则和方法。不要害怕尝试多个项目,直到你找到最让你兴奋的“一个”

    当然,一开始你需要理论知识,所以我推荐以下书籍:

    • 应用Larman的UML和模式

      • 设计应用程序需要一点实践,但这不应阻止您的尝试。过一会儿,你就会掌握窍门

        小贴士:试着向你的同事学习。让他们向您展示他们如何设计应用程序,他们遵循什么流程,他们如何识别问题,以及他们是否使用模式来解决问题?有时候,最好看看设计过程是如何工作的,而不是自己去学习

        我的50美分的优质资源:


      • 你好你是新来的,所以只是一个建议。。。如果你喜欢任何答案,请不要忘记接受。它鼓励其他人回答你。只需勾选你最喜欢的答案下方的“复选标记”。:-)+1建议通过思维实验理解现有规范。别忘了,如果你考虑一个选择