
设计模式
文章平均质量分 95
Linux服务器开发
C/C++Linux后台服务器开发高级架构师内容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,音视频开发,Linux内核,TCP/IP,协程,DPDK多个高级知识点。
展开
-
设计模式第八讲:观察者模式和中介者模式详解
(1). 定义指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式模型-视图模式,它是对象行为型模式。PS: 观察者模式是 【1对多】的关系,后面的中介者模式是 【多对多】的关系。(2). 优点:A. 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。B. 目标与观察者之间建立了一套触发机制。(3). 缺点:A. 目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。原创 2023-02-23 20:36:32 · 673 阅读 · 0 评论 -
设计模式第七讲-外观模式、适配器模式、模板方法模式详解
(1). 定义是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。(2). 优点A. 降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。B. 对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。原创 2023-02-17 14:38:49 · 593 阅读 · 0 评论 -
设计模式第六讲:责任链模式和迭代器模式详解
(1). 定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。PS:责任链模式也叫职责链模式。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了。(2). 优点:A. 降低了对象之间的耦合度。原创 2023-02-15 15:09:54 · 594 阅读 · 0 评论 -
设计模式第五讲-装饰器模式和代理模式详解
(1). 定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。(2). 优点:A. 采用装饰模式扩展对象的功能比采用继承方式更加灵活。B.可以设计出多个不同的具体装饰类,创造出多个不同行为的组合。(3). 缺点装饰模式增加了许多子类,如果过度使用会使程序变得很复杂。(1). 定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。原创 2023-02-14 14:32:37 · 751 阅读 · 0 评论 -
设计模式-值类型与引用类型、深拷贝与浅拷贝、原型模式详解
(1). 分类值类型包括:布尔类型、浮点类型(float、double、decimal、byte)、字符类型(char)、整型(int、long、short等)、枚举(entum)、结构体(struct)。引用类型:数组、字符串(string)、类、接口、委托(delegate)。(2).内存存储值类型数据存放在栈stack中, 引用类型地址存放栈stack中,数据存放在堆heap中。值类型变量声明后,不管是否赋值,都会在在栈中分配内存空间。原创 2023-02-11 17:47:34 · 760 阅读 · 0 评论 -
设计模式-组合模式和建筑者模式详解
(1). 定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。(2). 优点:A. 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码;B. 更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”;(3). 缺点A. 设计较复杂,客户端需要花更多时间理清类之间的层次关系;B. 不容易限制容器中的构件。原创 2023-02-10 20:35:05 · 883 阅读 · 0 评论 -
设计模式-策略模式详解
(1) 定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。(2) 优点:A. 多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句。B. 策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。原创 2023-02-09 14:25:23 · 492 阅读 · 1 评论 -
设计模式-工厂方法模式和抽象工厂模式
(1). 定义:定义一个创建产品对象的工厂接口,然后把产品对象的实际创建工作放到具体的子类工厂当中实现。PS:① 我们把被创建的对象成为“产品”,创建产品的对象称为“工厂”。如果创建的产品不多,且基本不会增加新产品,只需要一个工厂类即可,这种模式叫做“简单工厂”,它不属于23种设计模式,它的缺点是违背了开闭原则。② 此处的介绍的‘抽象工厂’,是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。原创 2023-02-08 17:10:26 · 505 阅读 · 0 评论 -
设计模式—代理模式以及动态代理的实现
代理模式(Proxy Design Pattern)是为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。一、代理模式介绍在结束创建型模式的讲解后,从这一篇开始就进入到了结构型模式,结构型模式主要是总结一些类和或对象组合在一起的结构。代理模式在不改变原始代理类的情况下,通过引入代理类来给原始类附加功能。代理模式的主要结构如下: Subject:抽象主题类,通过接口或抽象类声明主题和代理对象实现原创 2022-03-28 16:13:13 · 596 阅读 · 0 评论