2020-03-24 11:11发布
当前很多资料都在讲述面向对象的优点,可是在软件开发或者大型软件项目中,面向对象却带来了巨大的类关系设计开销,但具体有何弊端却没有详尽的介绍。
1.性能损失.面向对象编程达到了软件工程的三个主要目标:重用性、灵活性和扩展性,相对的为了实现相应的目标, 就会有一定的性能损失,如果程序进行超大规模计算,则性能损失就比较明显;
2.对数学运算等对象化很弱的编程不适用;
总之,要根据情况,选择合适的编程范式,没有万能的东西.
面向对象原本要解决什么(或者说有什么优良特性)似乎很简单,但实际又很不简单:面向对象三要素封装、继承、多态(警告:事实上,从业界如此总结出这面向对象三要素的一刹那开始,就已经开始犯错了!)。封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。有了封装,就可以明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者;而外部调用者也可以知道自己不可以碰哪里。这就提供一个良好的合作基础——或者说,只要接口这个基础约定不变,则代码改变不足为虑。继承+多态:继承和多态必须一起说。一旦割裂,就说明理解上已经误入歧途了。
最多设置5个标签!
1.性能损失.面向对象编程达到了软件工程的三个主要目标:重用性、灵活性和扩展性,相对的为了实现相应的目标, 就会有一定的性能损失,如果程序进行超大规模计算,则性能损失就比较明显;
2.对数学运算等对象化很弱的编程不适用;
总之,要根据情况,选择合适的编程范式,没有万能的东西.
回答: 2021-09-16 10:11
面向对象原本要解决什么(或者说有什么优良特性)
似乎很简单,但实际又很不简单:面向对象三要素封装、继承、多态
(警告:事实上,从业界如此总结出这面向对象三要素的一刹那开始,就已经开始犯错了!)。
封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。
有了封装,就可以明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者;而外部调用者也可以知道自己不可以碰哪里。这就提供一个良好的合作基础——或者说,只要接口这个基础约定不变,则代码改变不足为虑。
继承+多态:继承和多态必须一起说。一旦割裂,就说明理解上已经误入歧途了。
一周热门 更多>