65.9K
CodeProject 正在变化。 阅读更多。
Home

IDEAL CHALK 助记符缩写和助记符图像用于面向对象原则

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (19投票s)

2012年2月28日

CPOL

6分钟阅读

viewsIcon

58282

downloadIcon

681

IDEAL CHALK 助记符缩写和助记符图像用于面向对象原则

IDEAL CHALK - Mnemonic Acronym and mnemonic Images for Object Oriented Principles

引言

本文的目的是提供助记首字母缩略词、助记图像和标语,以便于记忆除了 SOLID 面向对象原则之外的面向对象原则。

由 Robert C Martin 引入的 SOLID 面向对象原则广为人知,并且易于以 SOLID 的首字母缩略词形式记忆。对这些原则的轻松记忆将有助于并提示程序员在编程中应用这些原则。除了 SOLID 原则,还有其他一些原则在面向对象编程中也同样重要。如果将这些原则以首字母缩略词的形式呈现,程序员将更容易记忆和在编程中应用这些原则。经过一段时间的尝试,我为这些原则创建了如下所示的首字母缩略词

INIicon INI 面向接口编程,而不是面向实现编程
DRYicon DRY

不要重复自己

EWVicon EWV

封装变化

ANCicon ANC

依赖抽象,而不是具体类

LKPicon LKP

最少知识原则

COIicon COI

优先使用组合而非继承

HOPicon HOP

好莱坞原则

ADPicon ADP

尽可能应用设计模式

LCSicon LCS

努力实现松耦合系统

KISSicon KISS

保持简单和清晰 / 愚蠢

此外,通过连接这些原则的关键词,形成了一个句子,如下所示

接口不重复封装的抽象,对好莱坞原则的组合知之甚少,松散地采纳以保持简单。

由于这些原则是对 SOLID 原则的补充,我们可以说,使用 IDEAL CHALK 编写 SOLID 面向对象程序。人脑擅长记忆图像而非文字。古语有云:“一图胜千言”。我为每个面向对象原则都创建了一个助记图像。

INI - 面向接口编程,而不是面向实现编程

INI

DRY - 不要重复自己

DRY

EWV - 封装变化

EWV

ANC - 依赖抽象,而不是具体类

ANC

LKP - 最少知识原则

LKP

COI - 优先使用组合而非继承

COI

HOP - 好莱坞原则

HOP

ADP - 尽可能应用设计模式

ADP

LCS - 努力实现松耦合系统

LCS

KISS - 保持简单和清晰 / 愚蠢

KISS

以下是 OO 大师与程序员之间的对话

OO 大师 你好!程序员。
使用面向接口而非实现 (INI)原则,并面向 IView 编程,以便我们可以将其用于桌面 (Windows Forms) 应用程序和 Web Forms 应用程序。面向 IView 编程,以便我们可以将其用于桌面 (Windows Forms) 应用程序和 Web Forms 应用程序。思考要做什么,而不是谁来做。
程序员 好的。不要重复自己。
OO 大师 很好。你提到了下一个 OO 原则。不要重复自己 (DRY)。修改只应在程序中的一个地方进行。它应该反映在其他地方。
程序员 是这样吗!谢谢。我也会遵循的。
OO 大师 我看到你把土豆和西红柿混在一起了。烂西红柿弄坏了土豆。在面向对象编程中也可能出现类似情况。这时就使用封装变化 (EWV)原则。不要让西红柿弄坏土豆。
程序员 这听起来很合理,您的观点我完全接受。
我一直在等我预订的车,到现在还没来。我必须出门了。
OO 大师 我得知汽车目前没有。只有货车可用。这就是为什么我们要依赖抽象而非具体类 (ANC)。如果你订的是四轮车,那么你可能会得到货车。要通用,不要具体。
程序员 我明白了。现在我订四轮车,以后我会注意的。
OO 大师 你很善于接受。顺便说一下,你的车到了。
当你外出时,要和朋友交谈,而不是陌生人。这是另一个面向对象原则,叫做最少知识原则 (LKP)
程序员 谢谢你的建议。我很快就回来。在我回来之前,你能帮我把房间里的模拟时钟换成数字时钟吗?
OO 大师 好的。我会的。
程序员 我房间的墙为什么要重建?
OO 大师 你把模拟时钟嵌入到墙里了。因此,为了换成数字时钟,墙正在重建。如果模拟时钟是挂起来的,那么替换成数字时钟就会很容易。预见到这些复杂性,OO 资深人士建议,优先组合而非继承 (COI)
程序员 我现在实际理解了它,它将成为我编程词汇的一部分。
请把你的手机给我,我想给我的老板打电话。
OO 大师 嘿,别给你老板打电话。你不知道好莱坞原则 (HOP)吗,别打电话给我们,我们会打电话给你的。
程序员 好好好。那我继续发明轮子,去造汽车。
OO 大师 你说什么?发明轮子!拜托!不要重复造轮子。使用现有的轮子来发明汽车。在面向对象编程中也是如此,应用设计模式 (ADP),它们是针对常见编程任务的成熟方法。你手里拿着什么?
程序员 我试图把 1 到 9 的数字放到这个魔方的每个面上。花了很多时间,但没有成功。
OO 大师 在魔方中,所有带数字的小方块都紧密耦合。因此,你面临着问题。尝试松耦合系统 (LCS)。不要纠缠不清。把每个面都看作是带数字 1 到 9 的平面。
程序员 你用这么多 OO 原则唤醒了我。这么多东西怎么记住和应用呢。
OO 大师

是啊!好问题。记住我们的对话和每个原则的首字母缩略词,在编程时观察哪个 OO 原则被违反了。如果不能完全应用该原则,不要担心。这些是原则,不是法律。法律是必须遵守的严格规则,而原则是指导方针,可以根据需要遵循。
在驾驶车辆时,我们会根据速度变化自动应用相关档位,并立即踩刹车。在交通工程中,踩刹车背后的理论被称为 PIEV 理论。
根据 PIEV 理论,踩刹车所需的时间是感知、理解、情感和意愿所需时间的总和。在汽车停止之前,会发生四个特定的活动区域

  1. 感知:感知到危险。
  2. 理解:判断危险是否合法。
  3. 情感:在决定是否停车时存在情绪因素。
  4. 意愿:存在将脚从油门踏板移至刹车踏板的身体意愿。

但是,在驾驶时,这些步骤会自动发生。同样,可以彻底研究 15 条 OO 原则(5 条 SOLID 和 10 条 IDEAL CHALK),以便在进行面向对象编程时自然地应用它们。

程序员 这次谈话给了我信心。
OO 大师 好的。最后别忘了 KISS。
程序员 KISS!
OO 大师 这是一个面向对象原则,叫做保持简单和愚蠢 (KISS)。不要拐弯抹角。直截了当。
程序员 非常感谢您的启发性指导。
© . All rights reserved.