【GiraKoo】面向对象开发系列之【为什么要用面向对象】
开源项目:https://girakoo.com/
问答
为什么要有面向对象开发?
面向过程开发的C语言,往往有以下几个问题:
- 不同的开发人员需要使用功能完全相同,或者大部分相同的函数。如果某个算法存在问题,很难保证工程里面其他位置的代码也同步获得更新。
- 各个模块之间都是硬链接,A调用B。如果B过时了,想要改成C。可能会导致工程里所有调用到B的模块无法通过编译。
- 数据结构没有权限管理。互相之间能直接读写数据。如果对模块不了解,很有可能会破坏某些内部处理。
针对这些问题,面向对象开发给了方案:
- 利用封装,继承关系。将功能类似的代码处理放到基类里面。所有的子类都能轻松调用。如果子类有特殊处理,可以利用多态,针对特定函数进行自定义。(高内聚)
- 利用设计模式,我们可以将两个模块的硬链接变成软链接。例如利用:工厂模式,建造者模式。就可以将对象实体隐藏到工厂和建造者后面。后期删除了A,只需要调整工厂和建造者的实现,就可以让代码变更量尽可能的小。(低耦合)
- 面向对象提供了权限管理,内部数据可以限制为Private级别。外部必须通过Public的函数进行修改。避免对功能不了解的开发人员,错误的更新数据,或者使用数据。类的维护者有能力保护自己的数据安全。(高内聚,低耦合)
如何理解设计模式
当面向对象编程的概念出现。我们需要一些工具,或者思想,来保证“高内聚,低耦合”的原则正确的实施。
设计模式,就是将可以使用的方案抽象成模式,供大家进行选择。
- 单例模式:可以限制程序中只有一个实例。保证数据的全局安全。
- 监听者模式:消息的发送者不需要提前知道接受者是谁。在开发时,只要制定了Listener/Observer的基类/接口类。就可以不受限制的进行开发。
- 工厂模式:工厂能够管理自己创建的对象类型,创建了多少个对象。甚至是管理每个对象的生命周期。
- 建造者模式:建造者可以根据外部的参数,决定创建的对象类型。灵活适配不同的使用场景。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异