⾯向对象和⾯向过程的区别及其优缺点
最近在学习Python,之前学习过C语⾔,所以对⾯向过程编程和⾯相对象编程有⼀定的理解,但是不深⼊,也⽆法应⽤⼀个实例来解释,今天看到博客园上⼀篇帖⼦,讲的很好,拿来借⽤⼀下。
1、⾯向过程和⾯向对象的区别
⾯向过程就是分析出解决问题的步骤,然后⼀步⼀步实现,在使⽤的时候分步调⽤即可;
⾯向对象就是把问题事务分解成各个对象,建⽴对象的⽬的不是为了完成⼀个步骤,⽽是描述某个事物在整个解决问题步骤中的⾏为。
以⽣活中下五⼦棋为例,表达如下:
⾯向过程的解决思路:开始游戏->⿊⼦先⾛->描绘布局->判断输赢->⽩⼦⾛->描绘布局->判断输赢->返回⿊⼦先⾛继续执⾏->直⾄有输赢结果,把各个步骤封装,然后调⽤;
⾯向对象的解决思路:各个步骤可分为1、⿊⽩双⽅,两⽅⾛是⼀样的;2、棋盘系统,负责描绘布局;3、规则系统,判断输赢、犯规等。第⼀类对象(玩家对象)负责接受⽤户输⼊,并告知第⼆类对象(棋盘对象)棋⼦布局的变化,棋盘对象接收到了棋⼦的变化就要负责在屏幕上⾯显⽰出这种变化,同时利⽤第三类对象(规则系统)来对棋局进⾏判定。
2、优缺点
⾯向过程
优点:性能⽐⾯向对象⾼,因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资源,⽐如单⽚机、嵌⼊式开发、
Linux/Unix等⼀般采⽤⾯向过程开发,性能是最重要的因素。
缺点:没有⾯向对象易维护、易复⽤、易扩展
⾯向对象
优点:易维护、易复⽤、易扩展,由于⾯向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更实例化类和实例化对象
加灵活、更加易于维护
缺点:性能⽐⾯向过程低

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。