C语言代码质量与架构调整(五)

1、模块设计方法

把握事物的本质规律和主要特征

方法论:领域问题(分析抽象),模型(设计抽象),软件系统(开发实现)

2、模块的设计目的

好的设计和差的设计最大区别就体现在应对需求变更的能力上,一个优秀的程序员一旦习惯设计、编写灵活应对需求变更的代码,他就不再写那些僵化、脆弱、晦涩的代码

3、模块设计原则

需要根据需求不断重构代码,保持代码对需求变更的灵活性

1)开闭原则,对于扩展是开放的,对修改是关闭的。通俗的讲,开闭原则就是软件功能可以扩展,但是软件实体不可以被修改。

实现办法:使用“策略模式”实现开闭原则、“适配器模式”、模板方法、观察者模式等等,关键是“抽象”,保证接口的随意扩展。---低耦合。

2)依赖倒置原则,高层模块不应该依赖底层模块,二者都应该依赖抽象。抽象不应该依赖具体实现,具体实现应该依赖抽象。开发更少依赖、更低耦合、更可复用的代码。

实现方法:就是高层抽象出一个服务接口,让底层依赖这个接口来实现,实现隔离底层和高层。---低耦合。

3)里氏替换原则,面向对象编程的封装、继承、多态,此处说的是继承。子类型必须能够替换掉原来它们的基类型

实现方法:严格审视自己的设计,哪个才是基类可以被后面具体实现继承。---低耦合。

4)单一职责原则,把强相关性的元素放在一个类里,而弱相关的元素放在类的外边,保持高内聚。

实现方法:职责分离、实现单一职责的原则过程。

5)接口隔离原则,不应该强迫用户依赖他们不需要的方法。

实现方法:不同调用者依赖不同的接口,这里更多是上面单一职责原则的一个约束

6)迪米特法则,问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。

解决方案:尽量降低类与类之间的耦合。

 参考:设计模式六大原则(1):单一职责原则_割韭韭的博客-CSDN博客

4、设计模式

设计模式原则更多是具有指导性的编程时更多依赖具体的编程设计方法。这就是设计模式。实际上用于解决某个问题场景的设计方案都可以是设计模式。

在面向对象软件设计的发展过程中,除了《设计模式》一书中提到的23中设计模式之外,新的设计模式仍然不断出现,按照创建型、结构型、行为型分类。常见的八个为:抽象工厂、适配器、组合、装饰者、工厂方法、观察者、策略模式、模板方法。

23个设计模式:
创建型:建造者模式、抽象工厂、原型模式、单例模式、工厂模式
结构型:外观模式、适配器模式、组合模式、代理模式、享元模式、桥接模式、装饰模式
行为型:中介模式、观察者模式、解释器模式、职责链模式、状态模式、命令模式、模版模式、策略模式、迭代模式、备忘录模式、访问者模式
C语言代码质量与架构调整(五)_第1张图片

 

4.1、怎么样选择设计模式?

考虑设计模式是怎么样解决设计问题的?浏览模式的意图部分、研究模式怎样互相关联、研究目的相似的模式、检查重新设计的原因、考虑你的设计中哪些是可变的(封装变化的概念)

责任链模式,每个处理对象依赖其后面一个对象

访问者模式,准备访问者,将访问者通过accept函数传递给校验器,根据校验器的类型调用者访问对应的函数,类似于多态了。

参考:

https://blog.csdn.net/zhengzhb/category_926691.html

2-Factory Method Pattern工厂方法模式_哔哩哔哩_bilibili

https://zmh6688.blog.csdn.net/article/details/101423428?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-101423428-blog-7247188.235%5Ev36%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-101423428-blog-7247188.235%5Ev36%5Epc_relevant_default_base3icon-default.png?t=N4P3https://zmh6688.blog.csdn.net/article/details/101423428?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-101423428-blog-7247188.235%5Ev36%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-101423428-blog-7247188.235%5Ev36%5Epc_relevant_default_base3

8、参考书籍

《架构师的自我修炼》

《设计模式》

你可能感兴趣的:(Linux下代码优化,架构,设计模式)