C语言:设计模式
文章平均质量分 75
如何在面向过程的 C 语言中进行面向对象编程?本专栏从面向对象的语言特征入手,详细讲述GOF丛书《设计模式》中的23类经典面向对象设计模式。
@一鸣惊人
这个作者很懒,什么都没留下…
展开
-
C语言:原型模式
原型模式的目标在于通过拷贝原型对象快速创建新的对象,原型对象的类型就是新创建对象的类型。一般应用于创建成本较高且复杂繁琐的场景。原创 2023-03-07 23:42:28 · 192 阅读 · 1 评论 -
C语言:建造者模式
构建者模式是一种常见的创建型设计模式,此模式基于分而治之的理念将产品的构建算法和产品的组件和组装分离,从而实质彼此的独立变化。所以相同的构建算法可以根据不同的部件及组装创建出不同的产品,不同的创建算法亦可以复用相同的组件及组装从而创建不同的产品。原创 2023-02-08 07:30:35 · 461 阅读 · 0 评论 -
C语言:单例模式(懒汉式)
介绍C语言单例的懒汉式实现方式,具体包括static方式和堆栈方式。两种实现相同的是两种方式都像懒汉一样,不到紧要关头绝不创建对象,不同的是两者存放数据的位置不同。原创 2022-09-12 22:46:32 · 481 阅读 · 0 评论 -
C语言:单例模式(饿汉式)
单例模式的本意是确保在整个运行时间和运行空间内某种数据类型只有一个唯一的实例,并且提供一个全局的访问接口。我们可从实例创建和访问两个角度,更深入的理解单例模式:(1)数据类型有且仅可创建一个实例,编程人员不能像普通的数据类型一样,随意定义此类型的实例。它是一个阉割的数据类型,限制类型实例的定义和创建。(2)此访问接口是全局唯一实例的访问接口,而非普通意义上的数据访问接口。实现......原创 2022-06-03 15:24:57 · 1688 阅读 · 0 评论 -
C语言:多态
多态指同一个接口的多种实现方式,是面向对象的核心。一般实现多态需满足:必须要有继承,必须要有重写 ,必须要父类引用/指针指向子类对象,三个必要条件。本文将从多态的三个必要条件入手,借鉴Javascript原型链设计并实现了一种C语言的多态实现范式。原创 2022-04-23 18:38:24 · 3618 阅读 · 0 评论 -
C语言:对象继承之多继承
继承除了public继承,还包括private继承和多继承。把派生类中的父类成员改成指针形式的前向声明即可实现private继承。多继承即派生类会有一个以上的基类,多继承实现和单继承本质上无太大差异,但是最关键的是父类和派生子类相互转换的偏移量,这是虚函数和数据成员导致的,采用类似MFC消息映射的原理定义多继承的子类和父类的关系映射最终实现子类和父类的相关转换。原创 2021-08-08 21:08:17 · 1226 阅读 · 5 评论 -
C语言:对象继承之单继承
继承是面向对象的另一个重要特性,继承是代码可复用的重要手段。将借助C++的new和delete的设计理念实现C语言的面向对象。由于篇幅限制,当前博客仅介绍C++的new和delete的设计理念和public继承实现。原创 2021-08-06 23:24:36 · 743 阅读 · 5 评论 -
C语言:对象封装
封装的目的包括两个层次:第一个层次是数据和方法的绑定,第二个层次是隐藏属性和实现细节。本博客从封装的概念入手,详细介绍基于C语言的封装实现细节。原创 2021-07-31 10:16:29 · 1293 阅读 · 2 评论 -
C语言:面向对象
面向对象和面向过程是编程的两种思想模式。面向过程视“程序过程”为一等公民,认为现实世界由一个个“流程或过程”组成;面向对象以“事务对象”为中心的编程思想,视“对象”为一等公民。本博客系列将采用C语言实现经典的23类设计模式。原创 2021-07-28 22:55:16 · 1343 阅读 · 0 评论