
面向对象编程
文章平均质量分 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语言案例)
设计模式–工厂方法模式一 模式动机在之前简单工厂模式推文中提到,简单工厂模式是通过唯一的工厂接口来负责所有产品的创建并初始化抽象接口。抽象接口的引入,使具体接口从主程序剥离了出来,实现了业务与细节的分离。但是它违反了开放-封闭原则,因为每添加一个新的产品,都需要改动这个唯一工厂接口,需要在里面加入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 评论 -
代码的设计图纸——UML(下)
UML建模在工程开发中,不止程序员可以用于做软件程序设计,而且产品经理也常常使用它来做软件需求分析。它本身的语法复杂度不高,新手经过一段时间的系统练习,很快可以熟悉使用。当软件需求者和软件开发者共同遵循这一套标准时,无疑可以大幅降低沟通成本,提高生产效率。在UML建模的语法体系中,主要分为两大类的设计图,分别是结构性、行为性。在这两大类图之下又有进一步的细分,但是本文侧...原创 2020-02-23 16:21:00 · 1134 阅读 · 0 评论 -
代码的设计图纸——UML(上)
优秀项目代码是怎么构建出来?写一步算一步?凭空想象?回答这个问题之前,先让我们看这么一个场景:搭猪窝or建高楼大厦。搭猪窝搭一个猪窝,可以这样来操作: 根据猪体型大小,粗略计算出猪窝大概要占几平米。去生活市场购买相应数量的木块、铁锤、尺子、钉子等一些基本物料和工具。物料准备完毕后,使用铁锤和钉子,很快可以利用木块把猪窝的外形搭...原创 2020-02-23 12:16:37 · 802 阅读 · 0 评论 -
还在为垃圾代码发愁吗?学习设计模式吧
嵌入式工程师现状在我头两三年的工作时间里,接触过不少嵌入式工程师,对这个行业的现状有一定的深入了解。从传统嵌入式工程师的学习路径来看,大部分是从熟悉硬件手册、配置寄存器开始学习,接着在边做项目边加深学习C语言,根据项目不同,会接触一些基础算法,比如控制上的pid、多轴插补,图像处理上的滤波、分割等等。在这个阶段中,会逐渐熟悉一些硬件之间的特性差异、掌握c语言编程来实现不同功能,学有...原创 2020-02-20 22:22:32 · 223 阅读 · 0 评论