《Thinking in JAVA》读书笔记_第一章_1.2~1.3

来源:互联网 发布:淘宝代运营是诈骗吗 编辑:程序博客网 时间:2024/05/20 13:04

1.2 每个对象都有一个接口

为何说没个对象都有一个接口?那就要从这个接口的定义上来说。在《TIJ》中所给出的解释是,接口确定了对某一特定对象所能发出的请求。

由之前的学习,我们可以认识到。对象是某个类型的具体实现。相同类型的不同实现间本质的区别应该是其标识的不同。而在大部分情况下,虽然他们拥有相同的属性,但是属性的不同也会使其自身的状态产生差异。

而在这部分所强调的应该是接口对于一个对象的重要性。如同我们之前所说的一样,对象之间是需要产生请求的。就如同购物一般,我提供一个请求,和请求所需的参数,你返还给我我所需要的东西。而决定了一个对象可以接受的请求的决定性元素就是接口。

每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型。

从这句话我们可以分析出什么?首先,没个对象可以满足的请求是固定的。就如同警察局可以接收你报案的请求,但是他无法接受你看病的请求一样。而一个对象可以接收哪些请求,则是由这个对象的类型所决定。因为不同类型中的不同接口决定了对象可以接受的请求。并且在接受到对应的请求之后才可以来执行相对应的程序代码。

 

1.3 每个对象都提供服务

这部分讲的主要是在面对一个问题是我们的所需要的思考方式。怎样的思想才能说是面向对象的思想呢?对问题进行拆分?将之拆分成若干个小问题后再根据问题之间的相似等情况来进行抽象将之编写成为一个类型然后通过对象来实现?

在《TIJ》之中所给出的回答是:将对象想象成“服务提供者”。在我的想象中,这就像一个工厂。我们现在需要制造一个汽车,然后我们将需要发动机啦,框架啦等等一系列的东西。当然,你可以直接一口气全部做出来。不过显然这样是不好的。如果你想去换一个新的发动机,那么你需要做什么?在这个从头到尾的流程中找出关于发动机的那部分,然后去修改。花费的成本暂且说,寻找我们所需要修改的地方的开销就是极大的。

通过面向对象的方法,我们可以把这一台汽车分为不同的部分。那么,我们需要一个专门的厂房去制造发动机,一个专门的厂房去制造框架。然后我们就可以在进行拼装了。这样我们在更换的时候,只需要换一个厂房制造的发动机等。当然,如果我们有别的地方需要用到这个发动机,直接在这个厂房取就好了。

而这样也就在一定程度上提高了程序的内聚性。

0 0
原创粉丝点击