寻找一些参考资料,我可以获得一些OO设计问题和实践解决方案,并提高设计技能。
感谢您的关注。
编辑:我读过: - Martin Fowler的重构 - Headfirst设计模式(它有问题解决方法,但非常局限于上下文中的模式)。 并对常见的设计模式有所了解。我正在寻找一个非常具体的参考设计相关问题和解决方案。
答案 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)。
这有什么问题,我们如何解决?
问题是:
因此,适配器设计模式是一个很好的解决方案。
顺便说一下,我制作了一个包含 12 个适配器模式示例的视频,您可以在其中看到面向对象设计的实践: