面向对象的三大特征学习感悟一、封装

面向对象的三大特征学习感悟一、封装

顾名思义:就是封闭包装
对于数据来讲:
就是将同种事物的多种信息及其行为聚集合成一个整体,便于调用。
对于行为来讲:
可以为外界提供多种必要的功能,而不显露实现功能的细节。类似于相机,有精美的外表,可以实现拍照的功能,但是相机里面究竟是如何实现拍照的,外界不得而知也不需要知道,同样,内部的实现细节的变化不会改变外部访问原则,体现了高内聚,低耦合的特征。而且在外部多个对象访问下,不会针对每个对象提供服务,而是同时进行服务。
对于设计来讲:
1、为了实现一个大的功能及其需要进行的繁杂的工作,必须进行分工以提高开发效率,封装实现了不同功能可以分开进行,极大提高了工作的效率。
2、封装可以实现将不同种类的事物分别包装,各自实现自己的功能,降低彼此之间因变化引起的影响。当然,对于变化性大的事物,为了避免其因变化而影响其他类,可对其进行单独的封装。
学生管理系统就很好的体现了这一点:
1、要实现学生管理系统的运行,需要学生的信息,包括姓名,年龄等等
2、而管理系统则需要这些数据的逻辑结果,实现增、删、改、显示、排序等等众多功能
3、而为了实现这些功能,还必须对学生信息进行逻辑处理,然后才能得到功能想要的结果。
基于此,将所有学生分为一大类,实现学生信息逻辑处理的方法函数等等归为一大类,而负责显示逻辑处理结果的功能归为一大类,这样一来视线就变得清晰很多,不必为了每个学生的信息单独进行处理,避免了很多的工作量。

class StudentModel:

class StudentManagerController:

class StudentManagerView:

当然封装也有禁忌:
1、避免过度封装,学生在管理系统中信息的种类全部是一样的,区别只在于每个学生信息的内容不同,符合类的要求和封装的思想,没必要分为男生、女生等等类别。像逻辑处理类中的各种功能,比如增加学生、删除学生等等,都是对学生信息进行批量处理,进行相同的操作,如果全都封装起来单独调用,只是徒增工作量,且不便于统一管理,违背了封装高内聚的原则。
2、避免封装过度,将功能集中在一起。例如游戏中,敌人和玩家,都有血量、攻击力等属性和攻击、掉血、死亡等功能,但是不能放在一起统一管理,因为玩家的功能显示和敌人不完全一样,敌人死了游戏可以继续,但是玩家死了游戏就结束,功能有所区别,实现起来就不能统一调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值