UML视频之面向对象封装与模块化、接口与抽象类

其实面向对象的方法对我们来说,并不陌生。像对象、类,抽象、继承、封装、继承多台这些概念也都听了很多遍。一般我们在学知识的时候,都是首先听说它是什么,知道他是什么之后会在脑子形成自己非常片面的理解。随着对问题的多次重复深入的学习,才会更理解知识,明白它好像并不向我刚开始知道的那么简单,这就是我这几天看UML视频时的感受。尤其是看到面向对象概念介绍这一块儿。让我对封装有了更深入的认识,

一、面向对象的原则

面向对象的原则有抽象、封装、模块性、层次性。说是原则,我个人理解这就是在使用面向对象思考或进行软件开发时的方法。其实这些都是前人花费很多时间精力总结出来的方法吧。也是为了使我们在进行软件开发时更加方便简单。

先说,抽象和层次性,这两点都是很好理解的。

抽象:理论上的解释就是找出同一类对象的共同属性和行为,形成类这就是抽象。例如我们可以把苹果、香蕉抽象成水果类,三角形、矩形可以抽象成多边形类。这很好理解也很好用。

模块化与层次性对比:先说它们的相同点,它们都是要把对象和类分组。不同点是模块化更类似于平辈之间的像是兄弟姐妹之间的关系。而层次性更像是父子之间的上下级关系。其实生活中的很多地方我们也运用了模块化的哲学,比如我们会将自己的房子分出,厨房、洗手间、客厅、卧室、储物间等等。公司管理中会分出个上、中、下的管理阶层这就是层次性。我们在敲机房收费系统也将系统分成了登录模块、查询上机记录等模块也可以说是子系统。


如下图表示的是一个小餐厅管理系统的模块


下图是层次的表示



个人觉得这四个概念中最不好理解的就是封装,以前我觉得封装就像是字面上的意思,就是把东西用箱子装起来,贴上封条这就是封装了。时间证明我是华丽丽的错了,理解的太片面了,封装是确实有像我上面所理解的把对象的属性和服务结合成一个独立的系统单位(即对象)的意思。不过它还有另一方面,即“信息隐蔽的作用”指对客户隐藏实现,客户仅仅看的到接口。

理论说起来总是很抽象,举个例子就会具体很多,比如:手机就是一个被封装的对象,手机的面板屏幕就是提供给用户使用的接口,用户并不需要了解手机的内部构造,信号的接收转换等等。再有,电视机也是一个封装好的对象,而遥控器就是一个接口,用户在看电视时只要会用遥控器就可以了,而不需要考虑,电视的内部构造。我想我们在敲机房收费系统时也是这样,用户只看的到界面,而不去管代码如何实现。


二、接口与抽象类

先说抽象类吧,其实可以见名知意的,抽象类,就是把类再进行抽象。例如男人和女人是两个对象,可以把他们都抽象成人类,再把类进行抽象,比如把人抽象成生物,那么生物就是一个抽象类。

再来说说接口,先从字面上说接口就是把一个对象同另一个对象连接起来的桥梁。接口就是抽象的方法。理解概念例子大哥当然是不肯或缺的:比如有很多方法,画三角形、画圆形、画矩形等等,我们可以把这些方法都抽象成画图形。那么画图形就是一个接口了。多态往往会用接口实现,比如封装了一个三角形类,我们定义了一个接口有画图、移动、缩放、旋转等方法,当我们看到接口时就知道这个三角形对象有这些方法了。我们在编程时,通过代码的编写在类中实现这些方法。


现在只是学到了UML,还没有学习C#,希望等将来学习C#了,能再总结一个有代码版的(*^__^*) 嘻嘻……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值