我看面向对象

      已经面向对象编程多年了,渐渐地对面向对象有了越来越深的体会,下面谈谈我对面向对象的拙见:)

      面向对象三大特性:封装、继承、多态。

      首先是封装,我觉得封装是面向对象的基础,封装让各种相关的数据和方法形成一个有机的整体(对象)。各种对象由于组成元素(字段、属性)和行为(方法)的不同而不同,这样世界才丰富多彩。封装让对象内部与外界有了明显的”界”。再谈谈封装的粒度,完全面向对象编程是不可能的或很不现实的,并且没必要,面向对象并不是对现实的模拟,需要根据项目的情况来调整对象的粒度,比如:现在我们考察一个地区有多少栋建筑,就没必要考虑建筑的形状,建筑的层数,建筑里有多少房间等。我觉得把握适当的粒度也从一方面反映个人抽象能力。

      其次是继承,继承是面向对象中类与类(接口)之间的关系,我觉得用生物进化论类比继承是很恰当的,继承让对象衍生出更具多样性的对象(多态)。继承的出发点是好的,然而在编程过程中继承的深度是需要谨慎考虑,继承得太深了容易陷入模拟现实的圈子里。Adapter设计模式,把继承的深度降低了,同时设计带来了更大的灵活性。依赖抽象(或基类),不要依赖具体。

      最后是多态,我觉的多态可以从宏观和微观两个方面来看。从宏观来看,类的泛化是一种多态的表现形式,派生类扩展了基类,基类下的派生类共性于基类,特性于扩展;微观上看,就要深入类的内部了,重载反映了行为上的多种形态,方法参数的抽象性我觉得也是多态的体现。

     封装 — 造“物”,继承 — 进化,多态 — 求同存异。

     以上是本人对面向对象见解,不喜勿喷,因为多态:)

 

转载于:https://www.cnblogs.com/oneday/p/3615667.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值