是否有任何网站/资源/书籍来练习和解决面向对象设计相关的问题?

时间:2010-06-27 16:25:39

标签: oop

寻找一些参考资料,我可以获得一些OO设计问题和实践解决方案,并提高设计技能。

感谢您的关注。

编辑:我读过: - Martin Fowler的重构 - Headfirst设计模式(它有问题解决方法,但非常局限于上下文中的模式)。 并对常见的设计模式有所了解。

我正在寻找一个非常具体的参考设计相关问题和解决方案。

7 个答案:

答案 0 :(得分:2)

我认为这是一个非常有趣的问题。正如已经指出的那样,有用的设计模式,面向对象原则和其他技术有很多很好的参考。

我还没有看到允许某人使用这些技术的资源。作为具有教育背景的人,我考虑过这种资源,我的结论是开发有用的资源是非常苛刻的。提出一个“烘焙”答案的小问题并不难(例如设计一个可能通过使用抽象工厂来解决的问题),但这些都是微不足道的问题,当系统更大并且有要考虑的权衡;那里可能有不止一个“正确”的答案。

我可以想象,高质量的正式课程可能包含这样的材料,但找到一些免费的东西?如果我们能找到一些非常好的东西。

我怀疑目前你可能需要依靠辅导,在工作中学习,以及长时间的经验。

也许有一件事要尝试:Buoild你自己的材料!例如,在您熟悉的域中解决一个非常重要的问题,并尝试设计解决方案。当你在这里提出关于小件设计的问题时(或者更多的话语网站)。要把问题保持在小问题上并且变得棘手。但我认为您需要的主要是反馈和协作。

答案 1 :(得分:1)

也许我有点旧约,但由于你的问题需要一个相当广泛的答案,我建议你熟悉关于“模式”的书籍/网站。

很快,模式就是常见OO设计问题的标准化解决方案(你不应该“重新发明轮子”)。

第一个和IMO最常读的是“设计模式:可重用的面向对象软件的元素”。它是1994年的C ++和Smalltalk中的例子,但它的方法可用于每种OO语言。

答案 2 :(得分:1)

Project Euler不时被提及。这是一个有200个“谜题”的网站,你可以用来练习面向对象的设计和编码。您也可以练习任何编码语言或方法。

这是一个列表,其中包含其他可以帮助您练习编码技巧的网站: http://grok-code.com/214/practice-your-code-fu-programming-contests-and-puzzles-online/

答案 3 :(得分:0)

尝试“域驱动设计”(或DDD),它定义了用于面向对象编程的设计模式。埃里克埃文斯是创始人的作者。 Martin Fowler是另一个拥有企业设计模式http://martinfowler.com/articles/enterprisePatterns.html的人。它们对设计模式都有巨大影响。设计模式是设置代码和解决面向对象编程问题的常用方法。

希望这是你正在寻找的东西。祝你好运!

答案 4 :(得分:0)

嗯,GoF是一个经典的开端。

答案 5 :(得分:0)

我喜欢Jimmy Nilsson的Applying Domain-Driven Design and Patterns。材料很好,写作是对话的。

答案 6 :(得分:0)

当您编写代码并遇到问题时,请尝试想出一种可以应用于这种情况的设计模式。

例如:您需要在项目中使用第三方 API(例如 Mailgun API)。

这有什么问题,我们如何解决?

问题是:

  • 我们可能想用其他一些 API 替换 Mailgun 的 API
  • 如果我们直接使用 out API 的代码,我们的代码取决于供应商

因此,适配器设计模式是一个很好的解决方案。

顺便说一下,我制作了一个包含 12 个适配器模式示例的视频,您可以在其中看到面向对象设计的实践:

https://youtu.be/q5520HhjVLk