第四章:类和接口。ITEM13:使类和成员的可访问性最小化。

信息隐藏是软件程序设计的基本原则之一,面向对象又为这一设计原则提供了有力的支持和保障。这
里我们简要列出几项受益于该原则的优势:
1.更好的解除各个模块之间的耦合关系:
由于模块间的相互调用是基于接口契约的,每个模块只是负责完成自己内部既定的功能目标和单元测
试,一旦今后出现性能优化或需求变更时,我们首先需要做的便是定位需要变动的单个模块或一组模块,
然后再针对各个模块提出各自的解决方案,分别予以改动和内部测试。这样便大大降低了因代码无规则交
叉而带来的潜在风险,同时也缩减了开发周期。

2.最大化并行开发:
由于各个模块之间保持着较好的独立性,因此可以分配更多的开发人员同时实现更多的模块,由于每
个人都是将精力完全集中在自己负责和擅长的专一领域,这样不仅提高了软件的质量,也大大加快了开发
的进度。

3.性能优化和后期维护:
一般来说,局部优化的难度和可行性总是要好于来自整体的优化,事虽如此,然而我们首先需要做的
却是如何定位需要优化的局部,在设计良好的系统中,完成这样的工作并非难事,我们只需针对每个涉及
的模块做性能和压力测试,之后再针对测试的结果进行分析并拿到相对合理的解决方案。

4.代码的高可复用性:
在软件开发的世界中,提出了众多的设计理论,设计原则和设计模式,之所以这样,一个非常现实的
目标之一就是消除重复代码。

不要提供直接访问或通过函数返回可变域对象的实例:

1 private static finla Thing[] PRIVATE_VALUES = {...} ;
2
3         //解决方案1
4     public static final List<Thing> VALUES = Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES)) ;
5
6         //解决方案2
7     public static final Thing[] values(){
8         return PRIVATE_VALUES.clone() ;
9     }
时间: 2024-10-11 09:01:23

第四章:类和接口。ITEM13:使类和成员的可访问性最小化。的相关文章

《Effective Java 第二版》学习笔记 第13条 使类和成员的可访问性最小化

第四章 类和接口 第13条 使类和成员的可访问性最小化 1.设计良好的模块会隐藏所有的实现细节,把它的API与实现清晰的隔离开来,模块之间只通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况:即信息隐藏或封装,是软件设计的基本原则之一. 2.Java提供了许多机制来协助信息隐藏.访问控制(access control)机制决定了类.接口和成员的可访问性(accessibility). 3.第一规则:尽可能地使每个类或者成员不被外界访问.或者说在保证功能的情况下,使用最小的访问级别

Effective Java 第三版——15. 使类和成员的可访问性最小化

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 类和接口是Java编程语言的核心.它们是抽象的基本单位.该语言提供了许多强大的元素,可以使用它们来设计类和接口.本章包含指导原则,帮助你充分利用这些元素,使你的类和接口是可

第13条:使类和成员的可访问性最小化

区别设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.设计良好的模块会隐藏所有的实现细节,把它的API于它的实现清晰地隔离开来.然后,模块之间通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况,这个概念称为信息隐藏或封装.使类和成员的可访问性最小化可以有效的解除系统中各个模块的耦合度.实现每个模块的独立开发.使得系统更加的可维护,更加的健壮.对于顶层的(非嵌套的)类和接口,只有两种可能的访问级别,包级私有的和公有的

13 使类和成员的可访问性最小化

要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰地隔离开来. 信息隐藏之所以非常重要有许多原因,其中大多数理由都源于这样一个事实:它可以有效的解除组成系统的各个模块之间的耦合关系,使得这些模块可以独立地开发.测试.优化.使用.理解和修改. 第一个规则很简单:尽可能地使每个类或者成员不被外界访问. 对于顶层的(非嵌套)的类和接口,只有两种可能的访问级别:包级私有的

使类和成员的可访问性最小化

本文涉及到的概念 1.使类和成员的可访问性最低的意义 2.类和成员的几种可访问性 3.其它注意事项 4.最后的原则 1.使类和成员的可访问性最低的意义 信息隐藏(information hiding),封装(encapsulation)的概念 一个模块对外部模块隐藏其内部数据和其他实现细节,也就是将它对外提供的API与它的实现细节清晰地隔离开来,它与其他模块的只通过API进行通信,其他模块不需要知道该模块内部的工作情况. 使用类和成员的可访问性最低的意义 a.可访问性越低,一个类对外暴露的信息就

Effective Item 9 - 尽量使可访问性最小化

模块设计是否良好,有个重要的因素在于,相对外部模块是否隐藏内部数据以及实现细节. 设计良好的模块会隐藏实现细节,并将API与其实现隔离开来. 模块之间通过API进行通信,对于内部工作情况互不可见. 即,封装(encapsulation)--软件设计的基本原则之一. 为什么要封装? 通过封装可以有效地接触各个模块之间的耦合关系,使这些模块可以独立地开发.测试.优化.使用.理解和修改. 即: ·可以增加开发效率,模块可以并行开发. ·封装可以减轻维护的负担,可以更有效的进行优化,且不会影响其他模块的

Effective Item - 使可访问性最小化

模块设计是否良好,有个重要的因素在于,相对外部模块是否隐藏内部数据以及实现细节. 设计良好的模块会隐藏实现细节,并将API与其实现隔离开来. 模块之间通过API进行通信,对于内部工作情况互不可见. 即,封装(encapsulation)——软件设计的基本原则之一. 为什么要封装? 通过封装可以有效地接触各个模块之间的耦合关系,使这些模块可以独立地开发.测试.优化.使用.理解和修改. 即: 可以增加开发效率,模块可以并行开发. 封装可以减轻维护的负担,可以更有效的进行优化,且不会影响其他模块的正确

C++入门经典-类成员的可访问性,继承后的可访问性

1:关键字public.private.protected说明类成员是共有的.私有的,还是保护的.这3个关键字将类划分为3个区域,在public区域的类成员可以在类作用域外被访问,而private区域和protected区域只能在类作用域内被访问. 2:这3种类成员的属性如下: public属性的成员对外可见,对内可见. private属性的成员对外不可见,对内可见. protected属性的成员对外不可见,对内可见,对派生类可见. 3:继承后可访问性.继承方式有public.private.p

Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类

Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s="foobar" >> s.class => String >> s=String.new("foobar") >> s=="foobar" => true >> a=Array.new([1