感悟系列-抽象类
一、前言
在对业务对象进行设计,通过抽象和接口来构建类,由类及其类之间的关系构建模块或者模式,由模块及其堆叠构建框架,由框架的整合构建系统,由系统及系统间的分工与合作构造平台,整个过程和房子的建造是一致的,由小到大,由零散到整体的过程。所以由0到1的过程,抽象和接口的设计就尤其的重要,假设在对需求足够明确,对业务理解足够清晰明了的情况下,如何通过抽象的方式把握业务本质和主体就显得至关重要。好的抽象带来的是业务的明确,不好的抽象带来的是业务模糊不清。
二、定义
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。具体地说,抽象就是人们在实践的基础上,对于丰富的感性材料通过去粗取精、去伪存真、由此及彼、由表及里的加工制作,形成概念、判断、推理等思维形式,以反映事物的本质和规律的方法—来自百度百科的定义。
在类的创建中,抽象是对系统业务中的具有同类性质的对象(事物)抽象公有的方法、属性、事件,对非公共的通过定义抽象方法,在继承抽象的类中重写虚方法。抽象的角度或者抽象的高度不同,所表达的含义也会不同,所以抽象的内容就不仅仅局限于场景中对象(实体)还可以是业务规则、服务、算法等等。
抽象与具体想比较是一个很泛的东西,不易于理解,就像在数学中的代数表达式,通过简简单单的几个符号就代表了一类函数,可见抽象的概括性,统一性,表达上的魅力。在模式设计,抽象对于模块间的解耦可以通过抽象类的方式来实现,在设计原则中有“抽象不应该依赖于细节,细节应该依赖于抽象”,所以使用的抽象也是构建良好的系统的关键。
三、总结
抽象不仅仅是在业务实体中进行,还可以在其他方面中体现,所要表达的就是把这个事物通过简单的定义描绘出来,把相关性的事物在进行归属和分类,使得层次清晰明了,业务在代码中也得到体现。由于抽象在角度的选取,层次的高低上有所不同,所以抽象没有唯一答案,同一个业务可能抽象的模型是不一样的,好与坏取决于模型和业务的接近程度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?