一、前言
在对业务对象进行设计,通过抽象和接口来构建类,由类及其类之间的关系构建模块或者模式,由模块及其堆叠构建框架,由框架的整合构建系统,由系统及系统间的分工与合作构造平台,整个过程和房子的建造是一致的,由小到大,由零散到整体的过程。所以由0到1的过程,抽象和接口的设计就尤其的重要,假设在对需求足够明确,对业务理解足够清晰明了的情况下,如何通过抽象的方式把握业务本质和主体就显得至关重要。好的抽象带来的是业务的明确,不好的抽象带来的是业务模糊不清。
二、定义
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。具体地说,抽象就是人们在实践的基础上,对于丰富的感性材料通过去粗取精、去伪存真、由此及彼、由表及里的加工制作,形成概念、判断、推理等思维形式,以反映事物的本质和规律的方法—来自百度百科的定义。
在类的创建中,抽象是对系统业务中的具有同类性质的对象(事物)抽象公有的方法、属性、事件,对非公共的通过定义抽象方法,在继承抽象的类中重写虚方法。抽象的角度或者抽象的高度不同,所表达的含义也会不同,所以抽象的内容就不仅仅局限于场景中对象(实体)还可以是业务规则、服务、算法等等。
抽象与具体想比较是一个很泛的东西,不易于理解,就像在数学中的代数表达式,通过简简单单的几个符号就代表了一类函数,可见抽象的概括性,统一性,表达上的魅力。在模式设计,抽象对于模块间的解耦可以通过抽象类的方式来实现,在设计原则中有“抽象不应该依赖于细节,细节应该依赖于抽象”,所以使用的抽象也是构建良好的系统的关键。
三、总结
抽象不仅仅是在业务实体中进行,还可以在其他方面中体现,所要表达的就是把这个事物通过简单的定义描绘出来,把相关性的事物在进行归属和分类,使得层次清晰明了,业务在代码中也得到体现。由于抽象在角度的选取,层次的高低上有所不同,所以抽象没有唯一答案,同一个业务可能抽象的模型是不一样的,好与坏取决于模型和业务的接近程度。