对象导论系列---被隐藏的具体实现

本文探讨了在类库设计中,如何通过访问控制保护类的内部实现,确保客户端程序员仅能访问必要的接口,同时允许类创建者自由修改内部实现而不影响外部。详细解释了私有、公共和受保护访问级别的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象导论系列---被隐藏的具体实现

将程序员按角色分为类创建者和客户端程序员。

客户端程序员的目标是收集各种用来快速实现应用开发的类。

类创建者的目标是构建类,这种类必须向客户端暴露必须的服务,而隐藏其她部分。为什么呢?因为加以隐藏,那么客户端程序员将不能访问她,意味着类创建者可以任意修改被隐藏的部分,而不用担心对其她人造成影响。被隐藏的部分通常代表类内部脆弱的部分,她们很容易被粗心的或不知内情的客户端所毁坏,因此将实现隐藏起来可以减少Bug

在任何相互关系中,具有关系所涉及的各方都遵守的边界是什分重要的。当创建一个类库时,就建立了与客户端程序员之间的关系,他们同样也是程序员,他们是使用你的类库来构建应用、或者构建更大类库的程序员。如果所有类成员对任何人是可用的,那么客户端程序员就可以对类做任何事情,而不受任何约束。即使你希望客户端程序员不要直接操作你的类中的某些成员,但如果没有访问控制,将无法阻止些事发生。口说无用,只能用代码来约束。

访问控制第一个存在的原因:让客户端程序员无法触及她们不应触及的部分-----这些部分对数据类型内部操作是必须的,但并不是用户解决特定问题所必须的接口一部分。迪米特法则其中一个思想就是让客户端只使用必须的接口,即最少能解决问题的接口。

访问控制每二个存在的原因:允许类库设计者可以改变类内部的工作方式而不用担心会影响客户端程序。

Java用三个关键字定义访问边界:

  1. Private:表示除类型创建者和类型内部方法之外任何人都不能访问的元素;
  2. Public:表示对任何人都可以访问;
  3. Protected:表示父类的导出类或同包内成员可以访问;默认即是包访问权限;

转载于:https://www.cnblogs.com/javajiuyangzhenjing/p/10189840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值