理解抽象事物的好办法就是用实例去代换。
就好比我理解一个一个概念或者公式的时候一样,把那些抽象的符号,拗口的条件,用实际的数值,现实的事物取代,这样
结果对我们是已知的,那么公式的结果和定理的结论,我们就可以验证了。
尽管这个不足以证明问题的正确性,但是对于问题的不正确性是足以说明的。
同样的方法也适合我们理解抽象的代码(我这里不是指写的乱七八糟的代码,而是指为了增强代码的重用性和可维护性而采用的
特定模式):
首先、不要死命看抽象类和借口;
而是应该抓住关联,去看实际实现这个抽象类或者接口的实现类,在哪里你将会看到很多的已知条件,足以满足理解的需求。
也会对整体的业务理解有帮助。
无论什么业务都是特性的,它对应的就是我们具体类;
而,业务是无穷无尽的,我们做软件开发的,不可能每个业务去写一个类;
所以,我们想出了抽象,想出了提取公共部分,想起了通用。
然而,我们做完了这些还不够,因为我们除了要满足业务需求,我们还要考虑可测试性,可发布性,可维护性,
所有这些都会影响我们对系统的设计,这些设计可以大到整个系统的架构设计,小到每个类的设计,贯穿始终。