
设计模式
文章平均质量分 96
papaofdoudou
我的藏经阁,用数学解释问题,用编程解决问题
展开
-
C++多态性分析和与Linux内核中的多态性实现的共性和差异比较
其实,在Inside The C++ Object Model(中文版名称是深度探索C++对象模型)的4.2节,已经明确给出:“在C++中,virtual funcdtions(可经由其class object被调用)可以在编译时期获得,此外,这一组地址是固定不变的,执行期不可能新增或替换之,由于程序执行时,表格的大小和内容不会改变,所以其建构和存取皆可以由编译器完全掌握,不需要执行期的任何介入”拜编译器所赐,CPP实现多态机制几乎是透明的,程序员几乎不用做什么。原创 2022-02-05 12:05:12 · 2526 阅读 · 1 评论 -
深入浅出理解桥接模式
桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。将抽象部分与他的实现部分分离这句话不是很好理解,其实这并不是将抽象类与他的派生类分离,而是抽象类和它的派生类用来实现自己的对象。这样还是不能理解的话。我们就先来认清什么是抽象化,什么是实现化,什么是脱耦。其概念是将复杂物体的一个或几个特性抽出去而只注意其他特性的行动或过程。在面向对象就是将对象共同的性质抽取出去而形成类的过程。转载 2020-12-22 10:20:31 · 529 阅读 · 0 评论 -
Linux设备驱动模型与 sysfs实现分析以及设计模式应用
这个问题和上一节模块依赖有关,简单点说,建立模块依赖引用计数机制需要在驱动结构体中记录一个struct module指针指向THIS_MODULE,而如果将驱动注册接口定义为纯函数,将无法把环境中的THIS_MODULE带入LINUX驱动核心层赋值给对应字段(不能使用参数的形式传入核心层,因为驱动开发者无需关心THIS_MODULE).距几个例子:而对于那些没有定义成宏的核心驱动注册接口,比如isa_register_driver,用户手填THIS_MODULE是标准做法。原创 2023-02-19 09:45:16 · 1594 阅读 · 0 评论 -
设计模式实现之state模式
状态模式的定义:Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.(当一个对象在状态改变时允许其改变行为,这个对象看起来像其改变了其类)。一个对象可以在声明周期内修改自己的状态,但是却不能在生命周期内修改自己所属的类。运用状态模式,可以得到一个优雅的折衷。原创 2023-04-20 23:03:55 · 274 阅读 · 0 评论