【发布时间】:2011-01-19 12:52:17
【问题描述】:
我是一名拥有 4 年 .Net 编码经验的开发人员,在我的职业生涯中从不关心设计模式。最近我被要求与 IT 中的一位大人物进行面试,已经完成了 5 轮(问题解决、结对编程、逻辑推理、2 轮技术面试)的面试,但没有提供工作。
虽然他们对我的技术和逻辑推理能力感到满意,但我从他们那里得到的反馈是不擅长设计原则。这让我觉得了解设计模式是解决问题的唯一方法?
虽然我在编码中从未使用过多的设计模式,但我总是试图实现 OOPS 的基本原则
- Open/closed principle (OCP)
- Dependency inversion (DI)
- Interface seggregation
- Liskov substituion principle (LSP)
我可以使用这些原则来设计一个松散耦合、开放以进行增强且易于维护的系统。最终,这些是所有设计模式的核心构造。
但我的问题是为正确的问题找到正确的模式。我知道这些知识不会仅仅通过阅读所有在设计模式和实践中出版的书籍来获得。这些知识来自于构建不同系统的经验。
模式问题匹配是否有可用的用例。您对学习设计原则的建议是什么?
干杯
【问题讨论】:
-
我非常怀疑您从未在编码中大量使用过设计模式。使用 SOLID 原则通常会导致实现已知设计模式的代码。您很可能在代码中使用了设计模式,但不知道它们的名称或理解它们是命名模式。
-
我很抱歉 - 也许是因为它是星期一早上......你的确切问题是什么?学习设计原则来自阅读领先设计师的书籍、研究他们的代码、尝试自己的玩具示例和实际工作经验……除了努力工作,没有简单的答案。
-
@Gishu,问题是我无法将模式与问题相匹配......任何问题,都可以用不同的方式解决......我如何预测单一模式非常适合我的问题等等。正如你所说,为此我必须有一个真实的体验。
标签: c# language-agnostic design-patterns