
设计模式
设计模式
jenie
jenie
展开
-
谈谈c++的模板的使用
类模板的定义#include<iostream>using namespace std;//类模板template<class name_type,class age_type>class Person{public: Person(name_type name,age_type age) { this->my_name = name; this->my_age = age; } .原创 2020-06-08 11:36:48 · 188 阅读 · 0 评论 -
c语言设计模式代码完整实现-责任链模式
模式介绍责任链将需要触发的对象组成一条链,发送者将请求发给链的第一个接收者,并且沿着这条链传递,直到有一个对象来处理它或者直到最后也没有对象处理而留在链末尾端。图表1责任链模式流程图责任链在C语言里也是实现形式非常明显的模式。最典型的责任链有linux内核的中断处理机制的纯软件部分和内核网络netfiler的HOOK机制。这两者均强化了责任链机制,重点在引入了责任优先级方法和增加了通过/终结两种处理结果。责任链模式的最重要的数据结构是handler链表。事件发生时,handler链表上的.原创 2020-06-02 00:06:23 · 1349 阅读 · 2 评论 -
C语言设计模式(抽象工厂模式)
前面我们写过的工厂模式实际上是对产品的抽象。对于不同的用户需求,我们可以给予不同的产品,而且这些产品的接口都是一致的。而抽象工厂呢?顾名思义,就是说我们的工厂是不一定的。怎么理解呢,举个例子。假设有两个水果店都在卖水果,都卖苹果和葡萄。其中一个水果店买白苹果和白葡萄,另外一个水果店卖红苹果和红葡萄。所以说,对于水果店而言,尽管都在卖水果,但是两个店卖的品种不一样。 既然水果不一样,那我们先定义水果。typedef struct _Apple{ void (*pr...原创 2020-05-15 01:17:36 · 283 阅读 · 0 评论 -
C语言设计模式(继承、封装、多态)
C++有三个最重要的特点,即继承、封装、多态。等到后来随着编码的增多和工作经验的积累,我也慢慢明白了面向对象的含义。可是,等我工作以后,使用的编程语言更多的是C语言,这时候我又想能不能把C语言变成面向对象的语言呢?等到后来通过思考和实践,我发现其实C语言也是可以面向对象的,也是可以应用设计模式的,关键就在于如何实现面向对象语言的三个重要属性。(1)继承性typedef struct _parent{ int data_parent;}Parent;typedef struct...原创 2020-05-15 01:11:05 · 403 阅读 · 0 评论 -
C语言设计模式(工厂模式)
工厂模式是比较简单,也是比较好用的一种方式。根本上说,工厂模式的目的就根据不同的要求输出不同的产品。比如说吧,有一个生产鞋子的工厂,它能生产皮鞋,也能生产胶鞋。如果用代码设计,应该怎么做呢?typedef struct _Shoe{ int type; void (*print_shoe)(struct _Shoe*);}Shoe;就像上面说的,现在有胶鞋,那也有皮鞋,我们该怎么做呢?void print_leather_shoe(struct _Shoe* ...原创 2020-05-15 01:00:56 · 256 阅读 · 0 评论 -
C语言(观察者模式)
观察者模式可能是我们在软件开发中使用得比较多的一种设计模式。为什么这么说?大家可以听我一一到来。我们知道,在windows的软件中,所有的界都是由窗口构成的。对话框是窗口,菜单是窗口,工具栏也是窗口。那么这些窗口,在很多情况下要对一些共有的信息进行处理。比如说,窗口的放大,窗口的减小等等。面对这一情况,观察者模式就是不错的一个选择。首先,我们可以对这些共有的object进行提炼。typedef struct _Object{ observer* pObserverList[MA...原创 2020-05-15 00:59:07 · 726 阅读 · 0 评论 -
C语言设计模式(之单件模式)
单件模式要是用C++写,一般这么写。#include <string.h>#include <assert.h>class object{public: static class object* pObject; static object* create_new_object() { if(NULL != pObject) return pObject; pObject ...原创 2020-05-15 00:56:31 · 282 阅读 · 0 评论 -
C语言设计模式
项目的成功是偶然的,但是项目的失败却有很多原因,管理混乱、需求混乱、设计低劣、代码质量差、测试不到位等等。就软件企业而言,没有比优秀的文化和出色的企业人才更重要的了。从软件设计层面来说,一般来说主要包括三个方面:(1)软件的设计受众,是小孩子、老人、女性,还是专业人士等等;(2)软件的基本设计原则,以人为本、模块分离、层次清晰、简约至上、适用为先、抽象基本业务等等;(3)软件编写模式,比如装饰模式、责任链、单件模式等等。从某种意义上...原创 2020-05-15 00:53:48 · 660 阅读 · 0 评论