所谓主要,指的是如果不具备这些元素之一,就不是面向对象。
对象模型有4个主要要素:1)抽象;2)封装;3)模块化;4)层次结构
所谓次要,指的是这些要素是对象模型有用的组成部分,但不是本质的。
对象模型有3个次要要素:1)类型;2)并发;3)持久
抽象的意义
抽象描述了一个对象的基本特征,可以将这个对象与所有其他类型的对象区分开来,因此提供了清晰定义的概念边界,它与观察者的视角有关。
每个对象的外部视图定义了一份契约,其他对象可以依赖这份契约,而该对象则需要通过它的内部视图来实现这份契约(常常需要与其他对象协作)。单独来看,构成这份契约的每个操作都有一个唯一的签名,包含它所有的正式参数和返回值。我们把客户对象可以调用的整个操作集,以及这些操作合法的调用顺序,称为它的“协议”。协议表明了对象的动作和反应的方式,从而构成了抽象的完整静态和动态外部视图。
抽象的核心思想是不变性的概念。
所有的抽象都有静态和动态的属性。
封装的意义
抽象和封装是互补的概念:抽象关注对象的可以观察到的行为,而封装关注这种行为的实现。
封装在不同的抽象之间提供了明确的边界,因此导致了清晰的分离关注。
定义:封装是一个过程,它分隔构成抽象的结构和行为的元素。封装的作用是分离抽象的概念接口及实现。
模块化的意义
模块化将程序划分为一些模块,这些模块可以独立地编译,但又与其他模块有联系。
定义:模块化是一个系统的属性,这个系统被分解为一组高内聚、低耦合的模块。
层次结构的意义
层次结构是抽象的一种分级或排序。
类结构(“是一种”层次结构)、对象结构(“组成部分”层次结构)
类型的意义
类型是关于一个对象的类的强制规定,这样一来,不同类型的对象不能够互换使用,或者至少它们的互换使用受到非常严格的限制。
并发的意义
并发是一种属性,它区分了主动对象和非主动对象。
持久的意义
持久是对象的一种属性,利用这种属性,对象跨越时间(例如,当对象的创建不存在了的时候,对象仍然存在)和空间(例如,对象的位置从它被创建的地址空间移开)而存在
原文:https://www.cnblogs.com/happyness-world/p/14055685.html