2018/08/23
抽象这个概念已经不知道说了多少次,对我影响最深的地方,就是告诉我写程序的时候进行细节隐藏,然后保证相应的上层接口只关注他需要关注的地方。
这两天看到了一本书,scip,据说这本书非常的经典,重要的是很晦涩。
我也看了很多网上的评价,就是这本书的关注点就是抽象。
而且内容上呢,也是说这本书可以培养一个人的抽象思维能力。
对我来说呢,我没看过,不好评价。比较难受的地方在于我平时很想去关注这些东西,但是呢,总感觉这个地方不舒服。就是因为我根本不知道这到底是什么弄出来的。那什么才叫抽象思维,我是不是可以应用到我现在的问题解决中。
另外,我其实想利用这种思想在建模的角度上,我不知道是不是可以。
2018/08/23
看了一天这个sicp in python这个里面我感觉有一个东西让我记忆比较深。
高级语言对于底层语言的抽象在于定义了一些原语,而我在对相应的内容进行抽象的时候也可以定义自己的原语,这样就形成了新的抽象级别。更深层次的,就是针对OOP类型的对象定义。
而如果这个高级语言还具有某些特性,那么他所设计出来的语言,将可以继续进行抽象,也就是语义级别的抽象。
2018/08/25
我发现一个问题,数据结构用来抽象实体我是明白的,但是呢,算法这个层次应该怎么切合进去呢?
有一个问题,比如查找类,底层是用链表或者哈希都可以,但是这样虽然抽象层次上来了,但是底层用什么算法呢???
(回答:上层不关心你使用什么算法)
2018/08/25
我来说一个想法,是不是说,上层业务模块只关心相应业务功能,但并不关心底层的实现,然后底层的实现就要根据实质的数据结构来完成。这才是抽象层该做的事。
那么也就是说算法只是针对相应的数据结构,而跟抽象层无关????
这样就真正实现了分层,以我的想法应该是三层,不对,两层。
第一层:实际的业务逻辑
第二层:数据结构和算法
同时为了进行封装,还要将业务逻辑代码与实际的算法代码区分开。
相应的算法层面就专心干算法的事情。
但感觉这个分离还是不太切合实际,毕竟很多实际的东西还是需要根据上层的实际需要来看。