面向对象OO 设计、架构终极理解, 以及如何学习一个领域

程序就是一些互相引用的内存快,互相发消息。

每个内存块就是一个状态机,状态的迁移规则是定制好的一些消息(方法)。构造函数用来初始化状态。

一个内存块的方法除了改变自身状态,也有可能向引用的别内存快发消息,引起别的内存块发生状态转移。


重点不在过程化的code,而在对象的状态,code只是定制好的对象状态转移的规则,重在掌握状态怎么转移,对象之间关系,维护一种不变式、模型的完整性。

程序运行就是对象状态转移,一切都是状态,结果也是对象的状态。


有些对象封装外部资源,比如文件、数据库。也是状态——外部的、persistent状态。外部资源的操作也是通过向内存快对象发送消息实现的,是一样的。从OO设计的角度,这个世界只有一种东西,就是对象。外部资源也是封装为对象的,或者说外部资源,比如文件、数据库、远程Server,并不是OO系统之外的东西,也是对象,代表着状态。对象是这些外部资源之上的抽象和封装。带着这个领悟再去看cc150上OO design那些例子。


什么是设计?设计就是去决定一个东西(对象)而不是一个流程,逻辑。设计就是对象设计,对象本身的状态,状态转移规则,以及和其他对象的关系。从维护不变式的角度,就是维护Model的完整性,对象自身的状态的完整性,对象之间关系的完整性。


要像建筑学那样看待代码,就是一个一个的build block。


所有的service 都是data service, or bit service,架构师的眼里只有,读、写,内存块,disk, process,inter process channels


一般的学习方法也是类似的,输入是流式的,一节课一节课,一章一章,逻辑推导。但学习的结果是一个结构,知识结构,概念结构。也就是一堆概念,以及这些概念之间的关系。学习一个领域的的结果就是掌握了这个领域的一些核心概念,以及概念之间的关系,面向概念和概念之间关系这样一种稳定的结构,而不是一堆动态的、过程、逻辑流程。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值