我正在尝试让一些团队成员参与OOP思维模式,目前他们正在考虑程序编程。
然而,我很难说“为什么”所有这些都是好的,“为什么”他们应该从中受益。
他们使用的语言与我不同,我缺乏沟通技巧,无法向他们解释这一点,使他们“想”学习OOP的做事方式。
什么是一些好的语言独立的书籍,文章或论据,任何人都可以给予或指出?
答案 0 :(得分:5)
OOP适用于多开发人员团队,因为它可以轻松实现抽象,封装,继承和多态。这些是OOP的热门词汇,它们是充满理由的热门话题。
抽象:允许团队中的其他成员使用您编写的代码,而无需了解实现细节。这减少了必要的通信量。想想“神话人月”,其中详细说明沟通是开发团队面临的最高成本之一。
封装:允许您更改实施细节,而不会影响代码的用户。因此,它降低了代码维护成本。
继承:允许您的团队以更低的成本重复使用和扩展您的实施。
多态性:允许您的团队使用给定抽象的不同实现。如果您的团队正在编写代码来读取和解析来自Stream
的数据,由于多态性,它现在可以无缝地与FileStream
,MemoryStream
和PigeonStream
一起使用显着降低了成本。
答案 1 :(得分:3)
始终举例。
拿一些他们认为不好的代码。重写它会更好。解释为什么它更好。你的同事要么同意要么不同意。
没有人使用(或应该使用)技术,因为它们是很好的技术,他们(应该)使用它们因为它们产生了良好的结果。非常简单地使用类和对象的优点通常很容易看到,例如当你有一个具有n
属性而不是n
数组的对象数组时,每个字段对应一个你关心的字段,等等。
答案 2 :(得分:2)
将程序与OOP进行比较,迄今为止最大的赢家是封装。 OOP并不意味着你自动获得封装,但与程序代码相比,这样做的过程是免费的。
答案 3 :(得分:1)
抽象有助于管理应用程序的复杂性:仅公开所需的信息。
有很多方法可以解决这个问题:OOP并不是促进这一战略的唯一方法。
当然,并不是因为一个人声称要做OOP而没有丰富的“抽象泄漏”来构建一个应用程序从而打败了策略......
答案 4 :(得分:1)
杀手锏:通过OOP,你可以“按原样”模拟世界*咳嗽*。
答案 5 :(得分:1)
您和您的团队可能会在其中一个领域工作。在其他情况下,由于使用oop的团队及其所有好处(如不同的框架,UML等)将会更有效地完成工作,所以多年前你就失败了。
我的意思是,如果你仍然在没有oop的情况下仍能正常工作,那么,也许就这样吧。
答案 6 :(得分:0)
我的大多数代码仍然是程序性的,但我更了解对象在我的代码中有意义的情况。我并不认为一切都必须是这样或那样的。
答案 7 :(得分:0)
通过层次结构重用现有代码。
答案 8 :(得分:0)
杀手锏是恕我直言,重新设计代码所需的时间要少得多。这是similar question explaining why。
答案 9 :(得分:0)
能够传递整个对象,可以使用该对象调用一堆方法/函数。例如,假设您想要传递一条消息,只需要传递一个对象,获得该对象的每个人都可以访问它的所有功能。
此外,您可以将某些对象的函数声明为public,将某些函数声明为private。还有一个友元函数的概念,其中只有通过OO层次结构相关的对象才能访问其朋友的函数。
对象有助于将函数保存在他们使用的数据附近,并将其全部封装到一个可以轻松传递的实体中。