上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.5 小结
■ 软件工程的成熟导致了面向对象分析、设计和编程方法的形成,所有这些技术都是为了解决大规模编程的问题。
■ 有一些不同的编程模式:面向过程的、面向对象的、面向逻辑的、面向规则的、面向约束的。
■ 抽象描述了一个对象的基本特征,可以将这个对象与所有其他类型的对象区分开来,因此提供了清晰定义的概念边界,它与观察者的视角有关。
■ 封装是一个过程,它被分隔构成抽象的结构和行为的元素,封装的作用是分离抽象的概念接口及其实现。
■ 层次结构是抽象的一种分级或排序。
■ 类型是关于一个对象的类的强制规定,这样,不同类型的对象不能够互换使用,或者至少它们的互换使用受到非常严格的限制。
■ 并发是一种属性,它区分了主动对象和非主动对象。
■ 持久是对象的一种属性,利用这种属性,对象跨越时间和空间而存在。
[1]换一种方式说,没有对象是一个孤岛(虽然岛屿可以抽象为一个对象),向诗人John Donne致歉。
[2]类型和类严格来说并不是一回事,某些语言区分这两个概念。例如,早期版本的Trellis/Owl语言允许对象既有一个类也有一个类型。在Smalltalk中,SmallInteger、LargeNegativeInteger和LargePositiveInteger对象的类型是一样的,都是Integer,虽然它们是不同的类[69]。但对于大多数人来说,区分类型和类的概念非常麻烦,也没有太多的价值。只要说类实现了类型就足够了。