java面向对象对封装的诠释

java面向对象两个特性。第一个就是核心特性,第二个是扩展特性,核心特征里面有封装、继承和多态。扩展特性里面有组合特性,例如圆有圆心,这也是一个组合。那这个组合,包括以前我们写程序的时候,使用依赖,反向要注入正向的依赖。
核心特性的理解,如何理解这些核心特性呢?首先第一个我们看封装特性,广义的封装一般指的是一个项目有哪些系统构成,一个系统有哪些模块构成的,一个模块里面有哪些对象构成。这个封装是广义的封装,这也是最难的一种理解。因为封装特性它比较抽象。例如,做一个电商系统,那你电商系统里面应该考虑到有哪些子系统,收银子系统、购物车子系统、订单子系统、推荐系统、搜索引擎等。我们在做一个项目的时候,要去思考这个项目有哪些子系统,一个系统里面又有哪些模块构成?(写代码的目的是什么?你要解决什么问题?这是我们要思考的,一定要从解决问题着手去写代码。)
封装特性比较简单的地方是属性私有化,方法能公开则公开这也是狭义的封装。
生活中的广义封装,大的国家有多个省份,家庭有多少个成员。狭义封装,每个人都有特征,个子高的,帅气、漂亮,都有行为,有的会说有的人就会说话,有的人会喝酒,有的人会唱歌、会跳舞。这都叫行为。但是要站在生活的角度去理解面向对象。
框架当中的封装操作,通过对参数的处理,结果的处理,对这些内容做了一些减法的设计。这本身就是一种分装。比方说Mybatis,封装了JDBC操作,对JDBC操作做了处理。广义上来讲,mybatis中的会话管理,我们要通过SQLsession实现会话,提供的连接池模块,缓存模块,因为查询数据库的话直接基于缓存去查询,肯定比直接基于数据库的查询性能要快。为了实现我们对整个查询过程或更新过程的一个日志的分析,还提供了什么日志处理模块。因为它分了很多对象,封装层越深,关系越复杂,那么背景是必须要考虑性能优化。狭义上,SQLSession对象中应该有什么,哪些设计为私有哪些设计为公开。spring框架中广义上来讲MVC、IOC、AOP,也是子框架的一个模块。狭义上来讲ClassPathXmlApplicationContext对象的构成。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值