活动地址:CSDN21天学习挑战赛
1、万物皆为对象
2、程序是对象的集合
3、每个对象都有自己的由其他对象所构成的存储
4、每个对象都拥有其类型。(每个类最重要的区别于其他类的特性就是“可以发送什么样的消息给它”)
5、某一特定类型的所有对象都可以接收同样的消息
对象具有状态(拥有内部数据)、行为(产生行为)和标识(可以和其他对象区分开来)
当正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想象为“服务提供者”。目标就是去创建(最好是在现有代码库中寻找)能够提供理想的服务来解决问题的一系列对象。
把服务看作诗服务提供者还有一个好处:它有助于提高对象的内聚性。高内聚是软件设计的基本质量要求之一。
这意味着一个软件构件的各个方面“组合”得很好。
在良好地面向对象设计中,每个对象都可以很好地完成一项任务,但是它并不试图做更多的事。
将程序开发人员按照角色分为类创建者和客户端程序员。客户端程序员的目的是收集各种用来实现快速开发的类。类创建者的目标是构建类,这种类只向客户端程序员暴露必需的部分,而隐藏其他部分。对于隐藏的部分客户端程序员将不能够访问它,这部分通常代表对象内部脆弱的部分,很容易被粗心的或不知内情的客户端程序员所毁坏,因此隐藏这部分可以减少程序bug。
相互关系很重要,当创建一个类库时,就建立了与客户端程序员之间的关系,他们同样是程序员,但是他们是使用你的类库来构建应用、或者构件更大的类库的程序员。
访问控制的第一个存在原因就是让客户端程序员无法触及他们不应该触及的部分。(这对客户端程序员来说其实是一项服务,因为他们可以很容易地看出哪些东西对他们来说很重要,哪些可以忽略)第二个原因就是允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员