获得徽章 0
- 从编程到逆向思维
什么叫逆向思维,比如方程式中的代元法,比如编程中的递归思想,这是西方人的思维特点之一,擅长逆向思维:
虽然我起初不能知道每一个步的细节,但是我知道大概需要执行哪些步骤,每一步需要什么样的方法,从而定义出来接口。
接口就像是方程式中的变量 x ,虽然我不知道 x 的具体值,但是我知道 x 满足 x + 1 = 2。
解决数学问题的过程:我先把表达式写好之后,再来考虑如何去求解 x 。
编程的过程:习惯于先定义一大堆接口,很多的抽象类,来来回回的继承,然后在抽象类和具体子类中考虑如何实现细节。抽象类中还会不断组合(比如 Spring 中的 Context 本身就满足 Factory 的接口,但是真正实现方法的时候却是通过调用另一个 Factory 实例来实现的,这个 Factory 实例是 Context 的一个属性),特别是抽象类调用具体子类方法的地方,总让我感到不安和紧张,因为这里具有不确定性,我不知道它到底会调用哪个子类。展开评论点赞