卢声远*_* Lu 5 java architecture oop methodology
我有一个复杂的系统来设计.我有两种方式:
自上而下:我将设计许多接口和合同.后来,我将实现这些接口,并编写原型来验证设计.
自下而上:我将编写代码以使系统运行.后来,我将从实体代码中提取接口和契约.蒸馏的接口和合同是我的设计.它的规则是" 让它运行,使其正确 ".
有什么更好的方法?从我的观点来看,我会选择Bottom-up.因为自上而下是非常困难的,所以没有人可以在高抽象级别设计许多接口,至少对我来说这很难.当我编写可靠的实现来验证初始设计时,有许多不合理的东西迫使我从头开始重新设计.虽然我使用Bottom-up,但我感觉非常"安全",它至少可以运行.
正如其他人所说,它通常是一种混合.在更实际的层面上,以下方法通常有助于:
从摘要自上而下开始.即,将系统/设计分解为逻辑组件以解决任务.但是不要为这些组件设计精确的最终接口.递归进行,直到您到达的某些组件具有"可实现的"大小(例如,单个函数/方法/类的大小)
然后,浏览结果组件列表Bottom-Up,并开始设计接口/合同的初稿.
然后,浏览结果组件列表Bottom-Up,并开始实现它们.这将允许您:
立即拥有可工作且可测试的代码(无需等待实现底层组件进行测试)
您可以根据已完成的较低级别组件的需要,为更高级别的组件合成最终版本的接口/合同.