什么是最好的Pro OOP参数?

JD *_*cks 5 language-agnostic oop

我试图让一些团队成员参与OOP思维模式,目前他们正在考虑程序编程.

但是,我很难说"为什么"这一切都很好,"为什么"他们应该从中受益.

他们使用的语言与我不同,我缺乏沟通技巧,无法向他们解释这一点,使他们"想"学习OOP的做事方式.

任何人可以提供或指出的一些好的语言独立书籍,文章或论据是什么?

jas*_*son 5

OOP适用于多开发人员团队,因为它可以轻松实现抽象,封装,继承和多态.这些是OOP的热门话题,它们是有充分理由的大热门话题.

抽象:允许团队的其他成员使用您编写的代码,而无需了解实现细节.这减少了必要的通信量.想想"神话人月",其中详细说明沟通是开发团队面临的最高成本之一.

封装:允许您更改实施细节,而不会影响代码的用户.因此,它降低了代码维护成本.

继承:允许您的团队以更低的成本重用和扩展您的实施.

多态性:允许您的团队使用给定抽象的不同实现.如果您的团队正在编写代码来读取和解析数据Stream,由于多态性,它现在可以无缝地与FileStreams,MemoryStreams和PigeonStreams 一起使用,并且成本显着降低.

OOP不是圣杯.对某些团队来说这是不合适的,因为使用它的成本可能高于不使用它的成本.例如,如果您尝试设计多态性但从未拥有给定抽象的多个实现,那么您可能会增加成本.