在进行课堂设计时,您通常遵循什么原则?
答案 0 :(得分:27)
答案 1 :(得分:7)
不要忘记Law of Demeter。
答案 2 :(得分:5)
S.O.L.I.D. principles。
或者至少我尽量不要过多地避开他们。
答案 3 :(得分:4)
最基本的设计模式应该是KISS(保持简单愚蠢) 这意味着有时根本不使用某些元素的类,这是正确的解决方案。
那和CRC(Class,Responsibility,Collaborators)卡(在你的头文件中写下卡片,而不是那些他们因为易于理解文档而在实际卡片上的卡片)
答案 4 :(得分:3)
如上所述,一些基本的面向对象设计原则是OCP,LSP,DIP和ISP。
Robert C. Martin(Object Mentor)对这些内容的精彩概述可在此处找到:OOD Principles and Patterns
答案 5 :(得分:2)
“Resource Acquisition Is Initialization”范例很方便,特别是在用C ++编写和处理操作系统资源(文件句柄,端口等)时。
这种方法的一个主要好处是,一旦创建了一个对象就是“完整的” - 不需要进行两阶段初始化,也不需要部分初始化的对象。
答案 6 :(得分:2)
松散耦合,高度凝聚力。
继承的构成。
答案 7 :(得分:1)
领域驱动设计通常是一个很好的原则。
答案 8 :(得分:0)
基本上我开始编程接口。我尝试封装通过案例进行更改的内容,以避免代码重复并将代码隔离到可管理(对于我的大脑)块中。之后,如果我需要,我可以很容易地重构代码。
答案 9 :(得分:0)
SOLID原则和Liskov的模式,以及单一责任模式。
答案 10 :(得分:0)
我想要添加到所有这些中的是分层,在应用程序中定义图层,图层的总体责任,以及两层将交互的方式。只应在该层中允许与该层具有相同职责的类。这样做可以解决许多混乱问题,确保正确处理异常,并确保新开发人员知道将代码放在何处。
设计的另一种方法是将类设计为可配置,创建一种机制,可以在类中插入配置,而不是覆盖子类中的方法,识别哪些更改,看看是否可以进行配置并确保此功能源自配置
答案 11 :(得分:-2)
我通常会尝试将该课程纳入其中一个design patterns.