文章来源:https://www.zretc.com/technologyDetail/466.html
前段时间,小卓曾邀请一位工程师前辈与大家详细交流了什么是面向对象,同学们表示很有收获。
那么为什么要面向对象设计呢?它有哪些设计原则?今天,我们就这个问题继续深入探讨:
小卓:在编程时,有个很重要的问题,既然我们能够很快地创建几个类,编写程序并提交,为什么我们还要关注面向对象设计?
同学:是啊,以前我不知道面向对象设计,我也能开发提交项目。有什么关系?
小卓:好的,先让我给你看一个经典的引述:
"需求不变的程序开发会同行走在冰上一样简单。"
- Edward V. Berard
同学:你是指软件开发说明书会被不断修改
小卓:非常正确!软件开发唯一的真理是“软件必然修改”。为什么?
要知道,你的软件解决的是现实世界中的问题,而现实生活不是一成不变的。
可能你的软件现在运行良好。但它能灵活的支持“变化”吗?如果不能,那它就不是一个敏捷设计的软件。
同学:好,那你就解释一下什么叫做“敏捷设计的软件”!
小卓:“一个敏捷设计的软件能轻松应对变化,能被扩展和复用。”
而应用“面向对象设计”是做到敏捷设计的关键。那么,什么时候你可以说你的程序应用了面向对象设计?
同学:我也正想问呢。
小卓:如果代码符合以下几点,那么你就在“面向对象设计”:
· 面向对象
· 复用
· 变化的代价极小
· 无需改代码即可扩展
同学:然后呢?
小卓:不只我们,很多人也花了很多时间和精力思考这个问题上,他们尝试更好的进行“面向对象设计”,并为“面向对象设计”指出几条基本的原则(你可以用在你的“面向对象设计”中)。他们也确实总结出了一些通用的设计模式(基于基本的原则)。
同学:你能说出一些吗?
小卓:没问题。现在有许多设计原则,但是最基本的,就是SOLID(缩写),这五项原则。(感谢鲍勃叔叔,伟大OOD导师)。
S = 单一责任原则
O = 开闭原则
L = Liscov替换原则
I = 接口隔离原则
D = 依赖倒置原则
想了解什么是SOLID?请阅读今天技术知识库的第2至第6篇文章,你将会看到许多生动有趣的举例说明,比如鸵鸟不会飞、买电视机、穿衣服……让你轻松了解面向对象的基本原则!
出处:开源中国
译者:K6F, 凡程子, 叫我蝴蝶吧, 王薇, 人头马没面, 铂金小龟, 风子, nikeff1108, sigai
链接:https://www.oschina.net/translate/how-i-explained-ood-to-my-wife?lang=chspage=4#
了解更多软件开发知识欢迎访问中软国际教育集团技术知识库!