关于JAVA 封装性 以及高内聚,低耦合的理解

1.封装性

   封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:
  ◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。
  ◇信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。
  封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度。

2.继承性

  特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。

一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。

在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。

3.多态性

    对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。

 4、封装的意义:

       封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。封装能为软件系统带来以下优点:
    (1)便于使用者正确的方便的理解和使用系统,防止使用者错误修改系统的属性。如果属性变为  public,就好比,到银行去存钱,不是通过柜面进行操作的,而是直接跑到银行的金库里面自己去拿钱了,这样就很不安全,这个例子中,可以把银行金库中的钱看作是某一对象的属性,而柜面的工作人员、出纳柜台就可以看作是set /get  方法了,也就是让对外服务提供某些接口,具体里面的操作就隐藏起来了。
再比如电视机系统,尽管它本身的实现很复杂,但用户使用起来却非常简单,只要通过遥控器上的几个按钮就能享受电视机提供的服务。电视机的实现细节被藏在它的大壳子里,没有必要向用户公开。
    (2)有助于建立各个系统之间的松耦合关系,提高系统的独立性。当某一个系统的实现发生变化,只要它的接口不变,就不会影响到其他的系统。
    (3)提高软件的可重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用。例如干电池就是一个可重用的独立系统,在相机、手电筒、电动剃须刀和玩具赛车中都能发挥作用。
    (4)降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。例如相机损坏了,它的干电池依然有用,可以安装到手电筒中。
一个设计良好的系统会封装所有的实现细节,把它的接口与实现清晰的隔离开来,系统之间只通过接口进行通信。面向对象的编程语言主要是通过访问控制机制来进行封装,这种机制能控制对象的属性和方法的可访问性。

 

 

5.什么是高内聚,低耦合?

       这是软件工程中的概念
首先要知道一个软件是由多个子程序组装而成,
而一个程序由多个模块(方法)构成!
而内聚就是指程序内的各个模块之间的关系紧密程度,
耦合就是各个外部程序(子程序)之间的关系紧密程度.
所以很易明白,为什么要高内聚?模块之间的关系越紧密,出错就越少!低偶合?子程序间的关系越复杂,就会产生更多的意想不到的错误!会给以后的维护工作带来很多麻烦!


理解:

减少耦合首先要从判断什么是耦合开始,这个问题我们不会有太多的分歧。
我们都应该明白耦合不是不可避免的,所以完全的去耦合根本就不可能。而实际上任何的应用在现实中,以及在我的认识中都受到其他因素的影响。这也使我们的设计实际上根本就不可能完全的达到去耦合。于是我们可以从职责的细分开始,也就是让职责可以在一个合适的粒度上,这样这个粒度的职责就总是被调用,而不是去调用别人然后又被调用这样的互相紧密关联。
同时我们也要注意到去耦合根本就不只是一个存在于面向对象领域的特殊概念,而是在任何的方式下都存在的问题。我也要注意到去耦合所要解决的问题是更好的面对变更,或者说是更好的可以被扩展。忘记这两点,单纯的探讨去耦合是没有意义的。也就是说我们要认识到,如果你的程序需求完全的确定,不需要考虑变更,你为区耦合作出的努力根本就没有价值。而且去耦往往还意味着,对于运行效能的降低。而实际上去耦的同时往往可能会带来新的潜在的耦合。实际上这里还是要落实到你的程序段落的职责是不适很明确的问题。
而耦合会带来系统的关联钝化,让你很难确认你的关注点。这其实也带来了你去耦的难度。而这实际上还是你的系统职责不清稀带来的去耦隐患。你要做的还是明确各个部分的职责。
而说到最后,实际上情况非常简单,就是你明确你的系统的职责。这可以用单一职责规则来得到保障,也就是你的程序中一个要素变化的原因,就只能是一个,一个改变只能带来一个直接的结果。任何的去藕无非就是在这个原则下就职责和职责的原因以及后果进行细分和组织

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO分设计资源源码,详情请查看资源内容中使用说明 YOLO分设计资源源码,详情请查看资源内容中使用说明 YOLO分设计资源源码,详情请查看资源内容中使用说明 YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明YOLO分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值