tij3笔记 001

来源:互联网 发布:js横向滚动条滑动插件 编辑:程序博客网 时间:2024/05/16 06:10
•    抽象过程
万物皆对象
程序是对象的集合,它们彼此通过发送消息来调用对方
每个对象拥有由其对象所构成的存储
每个对象都有其类型(type),每个对象都是某个类(class)的实例(instance)
某一特定类型的对象都可以接收(reseive)同样的消息
更简洁地说:对象拥有状态(state),行为(behaviour)和标识(identity)

•    对象都有接口
类实际是一个数据类型。创建的对象所能完成的请求由对象的接口(interface)决定,接口则由类型(type)决定。

•    对象提供服务
将对象视为“服务提供者”。
每个对象提供一些服务,它们构成的程序也便通过此来提供服务,所以编写程序解决问题也即制作一组能为解决问题提供最佳服务的对象。
应不断分析需要的对象:要解决什么问题?这些对象提供什么服务?还需要什么对象?这样便将问题分解成为一组对象。
视对象为服务提供者还可提高对象的内聚性(cohesion)。内聚性高是高质量软件设计基本要求,即指软件的各种组件(对象,方法或类库)应能很好的组装在一起。
这也提醒:不要向一个对象塞过多功能,一个良好的oo设计中每个对象都应该只做一件事且只做好一件事而不是多多益善。
同时,这可以帮助别人理解代码或者复用对象。

•    隐藏实现
将程序员按照角色分为类创建者和客户端程序员。
类创建者构建类,该类向客户端程序员暴露必需的部分,隐藏其它所有部分。

控制访问权限的首要原因是禁止客户程序员去碰他们不该碰的东西--那些数据类型内部运算必须的东西,只允许他们接触解决问题必须的接口。
第二个原因是允许类库设计人员能在不打扰客户程序员的情况下修改类的内部工作方式。

三个设置类中边界的关键词:public,private和protected,见名知义。(继承类能够访问protected成员。)
java的缺省访问权限称package access权限。在这种权限下,类可以访问同在一个包中的其它类的成员(同在一个package中的未定义权限的类可以互访)。

•    复用具体实现
复用一个类:将这个类的对象置于某个新类中,称为”创建一个成员对象”。新的类可以由任意数量,任意类型的其它对象以任意方式组成,来让那个新的类提供你所设计的功能。这是用已有的类合成新的类,因此这一概念称为合成(composition);若这过程为动态合成则通常称聚合(aggregation)。组合常被视为“has-a”(拥有)关系。