chapter1 对象导论
1.1抽象过程
面向对象程序设计的特性:
1.万物皆为对象
2.程序是对象的集合.
3.每个对象都有自己的由其他对象所构成的存储.
4.每个对象都拥有其类型.
5.某一特定类型的所有对象都可以接收同样的消息.
1.2每个对象都有一个接口
面向对象方法并不是仅局限于构建仿真程序.面向对象技术的应用可以将大量问题很容易降解为一个简单的解决方案.
1.3每个对象都提供服务
对象 比作 "服务提供者"(service provider)
建立系统,可以将问题分解为对象集合.
有助于提高对象的内聚性.(每个类都专门完成一个特定,通用的服务,一个类功能不能太多,分类封装,使其内聚性更高,复用性更强)
每个对象都有一个它所能提供服务的内聚的集合.
eg.检查打印模式的模块中,不应该由一个类完成所有格式和打印技术.
分为3个类,
一个类是所有可能的支票排版目录,用于查询如何打印支票信息;
一个类是通用的打印接口,知道所有不同类型的打印机的信息
一个类是通过调用以上两个类的服务来完成打印任务.
1.4被隐藏的具体实现
程序开发人员分为(按角色):
类创建者(创建新数据类型)
客户端程序员(在应用中使用数据类型的类消费者)
他们关注点不一样
后者收集用来实现快速应用开发的类.
前者构建类,只向后者暴露必需的部分,隐藏其他部分.(好处:保护程序脆弱部分,不容易被毁坏而出现bug)
涉及 访问指定词(access specifier)
public private protected default(包访问权限)
1.5复用具体实现
设计可复用的对象需要丰富的经验和敏锐的洞察力.(有用的代码单元)
复用方式:
直接调用对象