流程设计和面向对象的设计之间的主要区别是如果在业务逻辑层上判断是否冗长,是否使用冗长的,即使您使用的是接口性能层,即使您使用Java/C#作为对象的完整面孔,您只能表明您的思维保留在传统的过程语言中。
有一个非常经典的数字学校检查场景。需求如下:
目前,如果直接编写它,那么易于复杂的代码很可能很高,并且很容易错过它。
示例如下:
该代码的复杂性是21,并且对主题的测试不好,而且犯错很容易。
图片是从左代码的官方解决方案中引用的。
您可以看到验证过程可以形成状态。当您遇到特定字符时,输入特定的状态进行判断,只有在该状态之后的有限状态才能连接。因此,我们可以定义n个状态,每个状态都定义X状态的条件和变化。
在Java中使用多个地图来维持这种关系。
您可以编写以下代码。尽管代码看起来更高,但维护和复杂性变得更强。
可以看出,复杂性仅为8,不会超过标准。
本文分享了华为云社区的诚意,作者:BreakDraw。