关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
3年前关闭。
Improve this question
作为一名核心开发人员,在编写应用程序时看到了类图、序列图,我决定改进自己,进行下一步的设计。
由于我是一名 OO 开发人员,因此我对提高我的设计技能很感兴趣。
例如,我很难设计货币转换器。
我对 SO 的问题:
可以收购吗?
通过互联网等帮助?
应用程序的知识
发达?
简而言之,给定一个问题,我只想以面向对象的方式解决它??
最佳答案
在做好的 OO 设计之前,你必须先做坏的 OO 设计。
一个很棒的项目是使用您的货币转换器并慢慢移动代码以使用 OO 概念。 OO 是一个创造性的过程:没有错误的答案,但确实存在更糟糕和更好的答案。基本上,当您的代码保留功能并变得更短/更易于阅读时,它会更好。当它在不添加更多代码的情况下获得灵 active 时,那就更好了。但这是一个创造性的过程。使用像 GIT 这样的版本控制系统能够轻松地“撤消”、尝试一些东西并犯错。 OO设计是一个过程。
- Is it by experience the design skills can be acquired?
是的。
- Will learning books/blog/material over internet etc help?
是的。
- Is it that one needs the domain knowledge of the application being developed?
是的,但我认为对领域了解得太多会破坏好的设计。在与航空公司程序员一起工作时,我注意到已知的、毫无疑问的抽象(“机票”、“预订”)抑制了良好的 OO 设计。您的 OO 模型是 不是 真实世界的模型。这是您的程序的模型。
- Knowing Design patterns, principles?
是的,越多越好,永远如此。
- Studying 'Code Complete' book ?
很多人都说这是一本好书。但是,你读过伊塔洛·卡尔维诺吗?还是豪尔赫·路易斯·博尔赫斯?各种书籍都可能有所帮助。
- Need to have Problem-solving skills?
不会。您可以通过应用 OO(或任何其他范式)获得解决问题的技能。
关于oop - 如何建立面向对象的技能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794010/