抽象没做好,何谈有类

简介: 抽象没做好,何谈有类

之前写过一篇文章是“面向对象的基础是抽象”(39条消息) 面向对象的基础是抽象_赛男丨木子丿小喵的博客-CSDN博客

当再提到这个问题得时候有了新的认知,尤其是这样得一句话“不用关心他是怎么做的,只要做成就可以了。抽象就是不关注内部具体是什么”。结合老师提到得一个问题,如何理解下面两句话:

”①我们要注重多少人来干事,而不是干什么事。

②我们要注重谁来干事,而不是怎么干事。

这与面向对象的抽象有什么关系?“

一、问题是最后一句话,”这与面向对象的抽象有什么关系?“,现在只说”抽象“,还没有谈到”类“的概念,所以还没有到封装,继承和多态,这说明什么问题,没有类,就无需关注类中的方法,方法中可能会说让别人做什么事情。我的脑袋中一直不能理解为什么不能说让别人做什么,比如打水这个例子,我也没有关心具体水是怎么打的,为什么不是面向对象的抽象,问题就在抽象这里,现在说的就是”抽象“,抽象还没做好,就没有类的事,没有类的事就没有类之间的关系。当然更不用关心一件事具体怎么去实现,回到抽象的解释--抽象就是不关注内部具体是什么。


二、关注句子的主语而非整个句子,再进一步说,关注除了句子的谓语之外的其他成分都可以,主语,宾语,总之名词性的部分,什么意思,你要抽象谁,这个谁是个名字,还拿打水这件事来说,抽象过程中注重对象,而不是过程,场地,打水人,打水工具,受水人,水等等,如果再进一步抽象,参与者,使用的工具,场所(UI),材料(参数)等等,唯独不该关心”让谁打水“。往上抽象,类越来越少,不光为了实现复用,也为了实现代码自动化,可扩充可维护。


三、关于粒度,越大,代码的“颗粒”越模糊,越接近一个逻辑上的概念;粒度越小,代码的“颗粒”越清晰,越接近具体的实现。通常情况下粗粒度的复用性要差,细粒度的、更具体反而更容易复用。也可以理解成抽象的类粒度越小,复用性越高,也就是上面的例子中提到的,抽象出场地,打水人,打水工具,受水人,水等等。


总结,面向对象的基础是抽象,因为没有抽象就没有类,没有类就没有封装继承和多态。


相关文章
|
1天前
|
C++
C++中类的接口与实现分离的技术性探讨
C++中类的接口与实现分离的技术性探讨
6 1
|
17天前
|
设计模式 关系型数据库 Java
顺畅的职责传递-用责任链模式优化决策流程
本文首先通过经典场景展示了不使用设计模式时的问题与痛点。接着,引入责任链模式,详细讲解了其定义、解决问题的方式、结构图及工作原理,并通过重构示例展示了该模式如何解决原有痛点。最后,对责任链模式的优势、缺点以及在实际应用中可能遇到的挑战和限制进行了总结。责任链模式通过解耦请求发送者和接收者,提供了灵活的请求处理机制,适用于多个处理者按顺序处理请求的场景。然而,该模式也可能导致请求得不到处理或性能下降等问题,需在实际应用中权衡利弊。
47 0
顺畅的职责传递-用责任链模式优化决策流程
|
17天前
|
UED
产品服务需求分析与概念设计阶段
产品服务需求分析与概念设计阶段
35 3
|
17天前
|
安全 物联网 测试技术
一些安全测试相关的概念梳理
一些安全测试相关的概念梳理
|
11月前
|
设计模式 Java uml
你的职责链模式符合五大原则吗?-系统学习九
工作之余对于用到的设计模式进行总结再梳理,发现职责链模式的妙处以及五大原则的指导下更能发挥职责链模式的优势于是乎便有了这篇博文的诞生
|
12月前
|
编解码 运维 监控
总结|工作中常见的沟通协作原则与方法
作者抛砖引玉总结了工作中常见的一些问题,包括如何让表达更高效的办法和目标制定的方法。
5035 9
|
消息中间件 JavaScript 小程序
架构设计:为什么说复用是邪恶的?
架构设计:为什么说复用是邪恶的?
|
搜索推荐 安全 数据安全/隐私保护
产品设计方法与原则
产品设计方法与原则
204 0
产品设计方法与原则
|
设计模式 关系型数据库
组件构建原则(五):稳定抽象原则
组件构建原则(五):稳定抽象原则
530 0
|
SQL
封装与职责分离的开发思维
封装与职责分离的开发思维
95 0