面向对象编程核心是多态!不是抽象哦 | by Sohee Kim


运行良好的软件和运行正常的软件之间是有区别的。仅考虑其行为,构建有效的软件是一项工作完成了一半。软件工程师应该通过考虑其结构来构建灵活且可扩展的软件。好的软件来源于好的结构,好的结构来源于好的架构。因此,像软件架构师一样思考很重要。
 
面向对象编程
十分之九的人将面向对象编程 (OOP) 描述为“一种模拟现实世界的方法”或使用以下概念:封装、继承和多态。然而,封装、继承和多态对于 OOP 来说并不是独一无二的,也不是新奇的。事实上,这些概念在非 OO 语言(如 C)中已经被广泛使用。
如果所谓的 OOP 概念不是 OOP 独有的,那么是什么让 OOP 如此强大和特殊?
Bob 大叔回答这个问题时说:“OO 是使用多态性获得对系统中每个源代码依赖项的绝对控制的能力。”
我认为他的回答揭示了我们为什么使用 OOP 的本质。面向对象语言之前的多态性是手动的并且有风险,因为工程师必须明确地使用指向函数的指针。然而,OO 语言使多态更容易、更安全,使工程师能够最大限度地发挥多态的好处。
在这篇文章中,我将用具体的例子来证明他的回答。这里多态性是动态多态性,也称为运行时多态性。

Database redisDatabase = new Redis();
business.saveName(redisDatabase, "Sohee");
Database mySqlDatabase = new MySql();
business.saveName(mySqlDatabase,
"Sohee");

面向对象语言中的多态性为工程师提供了强大的能力来构建一个对扩展开放的更灵活的系统。尤其是在频繁更改的易变系统中,依赖倒置有助于打破耦合。我希望你能更好地理解鲍勃叔叔的观点。如果有人问 OO 是什么,你可以引用他的话说:“它是通过使用多态性,获得对系统中每个源代码依赖项的绝对控制的能力。”

详细点击标题