
设计模式
文章平均质量分 66
耶耶宁
有梦谁都了不起
展开
-
前任写的代码,真的垃圾啊
我的那些二手代码...工作几年下来,开阔了一些眼界,也积累了不少行业经验,自己参与开发的一些产品目前已经稳定运行在数万台设备上面。几年的心血还是没有白费滴,只不过在这个过程里面,数次接手了前任们的代码,一度在各种深坑中,难见天日,真是各种名副其实的"屎山"...... 直到业务需求逐渐趋向稳定后,我也开始逐渐考虑一些新的问题。首当其冲的就是关于好代码和坏代码的思考。在与人交流、讨论代码的质量时,听到的最多的评语就是:“代码写得很烂”或者“代码写得很好”。用“好”“烂”这样的字眼来描述,非常地...原创 2020-05-26 23:38:36 · 257 阅读 · 0 评论 -
手把手教你,拿下观察者模式|c语言!
科普文,给大家介绍观察者模式的使用场合及其优缺点。模式动机观察者模式是比较常用的设计模式之一,尤其是系统里面涉及到多个复杂子系统时,经常会使用到。它就像系统里面某个子系统的跑腿,一当该子系统发生变化,它就要马上通知其他的子系统。一个经典的例子就是我们操作系统所使用到的GUI界面,当我们在GUI系统里面使用各种应用程序时,只需要用鼠标轻轻点击软件右上方的全屏/非全屏,软件里面全部的组...原创 2020-05-03 16:53:11 · 478 阅读 · 0 评论 -
c语言也能用模板方法模式?
模式动机在嵌入式的应用场景中,管理资源(例如文件、内存)是一件非常麻烦、非常容易出错的事情。因为在分配资源后,还必须释放资源。例如fopen()打开文件后,必须要使用fclose()来关闭文件,而使用malloc申请内存资源后,就必须使用free()函数来释放内存。在实际开发工作中,稍微对malloc不注意就会导致内存泄漏。而模板方法模式堪称预防这类低级错误的神器!场景案例场景:现...原创 2020-05-03 16:52:00 · 670 阅读 · 0 评论 -
c语言,去你的策略模式!
模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。简单来说,策略模式就是用统一的方法接口分别对不同类型的数据进行访问。场景案例场景:现在我们想用pc看...原创 2020-04-12 22:13:47 · 221 阅读 · 0 评论 -
设计模式--状态模式(C语言实现)
原创亚索老哥embed linux share模式动机状态模式(状态机)是嵌入式开发中最重要、最核心的设计模式之一,毫不夸张的说,是否熟练掌握状态模式,很大程度上直接决定了嵌入式工程师的代码掌控能力。在嵌入式开发里面,几乎80%以上的程序都有状态模式(状态机)的影子。在一个思路清晰而且高效的程序中,必然有状态模式(状态机)身影浮现。但是很多嵌入式开发者只是掌握一些很基础的状态机编...原创 2020-04-11 04:54:26 · 5853 阅读 · 11 评论 -
记录C语言面向对象的一些思考
C语言与C++的老大之争最近一直在尝试用C语言尝试写设计模式,但是陆续写了几个模式后。蓦然发现,很简单的逻辑代码,用C++/java结合设计模式,代码写得非常舒服、非常优雅。但是一旦用C语言来实现,立马变得无比臃肿。我不得不开始怀疑C语言是不是不适合潮流的发展了?花了几天的空间时间,不断地去思索这个问题。自己总结了一下,主要有这几方面原因: C++的类构造。C++的n...原创 2020-04-09 00:38:00 · 197 阅读 · 0 评论 -
C语言设计模式--建设者模式(C语言案例)
前言这里先插一点题外话,在C语言中,实现封装、继承、隐藏、多态等等特性,是完全没有问题的。但是在使用过程中,必定是不如自带这些特性的语言方便好用的,比如C++\java等。一旦要通过C语言来实现各种设计模式,必定会在严谨地维护类层次上造成非常繁琐和臃肿的代码。这是因为C++/java等自带一套面向对象的工具,而C语言要在代码设计中,不断地根据实际情况来创造面向对象的工具。更多深层次的原...原创 2020-04-09 00:30:18 · 306 阅读 · 0 评论 -
设计模式--单例模式(C语言案例)
模式动机单例模式是最简单的设计模式之一,顾名思义,整个系统中每个结构体只有一个实例存在,不能再多,否则就不叫单例。单例模式只应在有真正的“单一实例”的需求时才可使用。场景:timo和gg都是同一个公司的职员,今天需要去找老板签署文件。传统代码实现:#include <stdio.h>//定义boss的行为typedef struct BOSS{ void ...原创 2020-03-25 23:53:25 · 483 阅读 · 0 评论 -
设计模式--补充面向对象基础
这一篇给大家补充一些学习设计模式的基础知识,比如设计模式的哲学思想,c语言如何实现面向对象特性等等。是进一步学习各种设计模式招式的内功。设计模式的感悟中国数千年的历史文明,留给后人数之不尽的智慧。自从事编程工作以来,已经三年多有余,慢慢代码敲多了,竟然在代码中发现了一些先哲们伟...原创 2020-03-21 19:58:58 · 183 阅读 · 0 评论 -
设计模式--工厂方法模式(c语言案例)
设计模式–工厂方法模式一 模式动机在之前简单工厂模式推文中提到,简单工厂模式是通过唯一的工厂接口来负责所有产品的创建并初始化抽象接口。抽象接口的引入,使具体接口从主程序剥离了出来,实现了业务与细节的分离。但是它违反了开放-封闭原则,因为每添加一个新的产品,都需要改动这个唯一工厂接口,需要在里面加入if或switch分支。二 解决方案工厂方法模式就是用来解决这个问题。它将产品的创建和初始化过...原创 2020-02-27 08:15:30 · 343 阅读 · 0 评论 -
设计模式--简单工厂模式(C语言案例)
设计模式–简单工厂模式一 模式动机先来看这样一个需求:这天,你的老大跟你说:“小李,公司的物料不够用了,你去嘉立创商城买一些 0805 电容回来,然后去捷多邦买点 0603 电容回来”。“好的”,于是你回到工位上准备开始干活。试想一下,如果这个场景用程序来实现,应该怎么写?从 C 语言传统的面向过程来看,应该这样写:#include <stdio.h>void login_w...原创 2020-02-26 03:14:42 · 474 阅读 · 0 评论