学会自底向上的软件设计方法。
找出问题的关键词,从关键词出发。
【自底向上的第一步,这一步的目的其实也是分解问题,把问题转换成最基本的组成单元。】
将对象之间的纽带解开,一小部分一小部分地进行实现。要分清楚系统中的物理行为和逻辑行为。
【一小部分一小部分实现更容易思考。有时候想的多了就会把目标设计得太复杂,导致思考不清对象之间的关系,或者实现的时候碰到问题。另外一点就是我们在设计对象的时候,有时候会忽略一些元素,这些元素在我们日常生活中太普遍太自然,思考时就会被自然地忽略掉。在设计程序时一定要想清楚这点,避免逻辑上的不自然。】
0-1-无穷规则。
【软件设计时三个至关重要的量。】
避免不必要的时空耦合。
经过之前的设计,代码会有一些冗余,这时候可以逐步提取可复用的组件和协议。寻找不太随时间变化的基本结构单元,而不是去找那些表面上看起来可以复用的模板式代码。
【其实这里没有弄的很明白。这个步骤是自底向上方法的必然过程,因为是从底层设计,在开始设计时高层抽象并不在考虑范围内。但是随着设计的进展,就会有冗余代码的出现。】
在实际应用中,自底向上和自顶向下是相辅相成的。
【就好像我们平时走路,既要看路边的建筑,也要看地图。如果对这个地区很熟悉,自然不需要地图,如果不熟悉,看看地图就能少走很多弯路。但是只通过看地图分析要走哪些路就会很累,做很多假设,得到一些错误的结论,其实只要到路上一看,就会明白哪里该拐弯,哪里是目的地。】