
设计模式
文章平均质量分 55
赛先生.AI
科技公司CTO。机器学习,深度学习,计算机视觉从业者。网络,流媒体技术,编解码技术爱好者。
曾从事汽车行业,安防行业,现从事无人机行业。
-> tecsai@163.com
展开
-
设计模式 - 状态模式
状态模式作为设计模式的一种,主要用于根据状态的改变执行不同的动作,它允许一个对象在其内部状态改变时改变它的行为。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。原创 2024-08-13 16:19:28 · 692 阅读 · 0 评论 -
中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern) 简述 中介者模式,顾名思义,有一个起中介作用的类,在对象间进行通信。而不需要对象之间的直接连接。这就起到了低耦合的效果。符合面向对象理论的高内聚、低耦合。 具体应用实例 假设有两个人,分别叫做chao和zhen,两人相隔千里。这一天chao和zhen起了冲突,chao通过mediator向zhen扔了一句话,zhen给了回应。 我艹,...原创 2018-11-13 15:50:38 · 181 阅读 · 0 评论 -
设计模式-模板方法模式(TemplateMethod Pattern)
模板方法模式(TemplateMethod Pattern) 基本概念: 模板方法模式从概念上讲,还是很容易理解的。需要执行两个任务,其中两个任务间既有共同的部分,又有不同的部分。那我们可以将两个任务重相同的部分提取出来,计划好流程,然后在后续执行任务过程中着重不同的部分。 比较抽象,但是好记得一句话(四个字)概括:分离异同。 具体应用举例: 在笔者实际工作中,经常使用索尼的相机...原创 2018-08-16 17:51:58 · 335 阅读 · 0 评论 -
设计模式 - 责任链模式
责任链模式(Chain ofresponsibility Pattern) 基本概念: 责任链,顾名思义,是指一个负责相应请求的行为链。 首先要理解的是一个链,然后通过这个链来管理个行为。 什么时候会用到责任链: 对于一个请求,没有特别指明由谁处理或没有指明如何处理。此时可以使用责任链的形式,用过将各种处理行为设置成为一个链条形式,将请求逐级传送。如果遇到合适的处理方式就处理该请求,并停原创 2017-10-23 14:50:53 · 235 阅读 · 0 评论 -
设计模式 - 代理模式
代理模式(Procy Pattern) 写在前面: 基本概念: 代理模式,顾名思义,就是利用一个类来代理另一个类所能实现的功能。属于结构型模式。 应用场合: 多数应用在“调用”场合。比如调用系统中的某个资源,调用远程的对象等。通过代理类能够获得被代理类的功能。 应用特点: 使用代理类,相当于给原有类添加了一层访问层。可以在这个访问层里添加用户想添加的一些功能,比如访问控制等。 应用原创 2017-10-12 09:19:31 · 301 阅读 · 0 评论 -
设计模式-建造者模式
建造者模式 一个个build类和多个简单的类,build一步步的通过简单类来构建一个复杂的类。 1. 简淡的描述: 建造者模式通常解决创建复杂类这样一个问题。这样一个复杂的类通常由一些小的简单的类,通过一定的方法组合而成。这些简单类相对稳定,组合方法也相对稳定,唯一不稳定的是这个复杂类。 2. 引用一句话: 将变与不变分离开。 3. 与工厂模式的区别: 建造者原创 2017-09-28 13:24:58 · 182 阅读 · 0 评论 -
设计模式-桥接模式
桥接模式(Bridge Pattern) 目的: 将抽象与实现分离,将两种不同变化属性分离。 具体点就是说,有两个维度,分别是抽象维和实现维,通过桥接模式,可以实现两个维度的分别演变而互不影响。 用途: 用于对于一件事物具有两种不用的变化属性,每种变化属性都有几种不同的方案。两种属性可以自由组合。 应用举例: 逛商场买衣服时,主要有两种考虑情况,款式和颜色(当然价格也是因素之一,在此原创 2017-10-06 13:27:39 · 198 阅读 · 0 评论 -
设计模式-原型模式
原型模式(Prototype Pattern) 用原型来指定对象的类型,通过拷贝(clone)来创建一个新的对象。 1. 什么时候会用到原型模式: 当你想通过一个已经实例化以后的类拷贝而得到另一个相同类型的对象时,可使用此类,如java中的clone功能。 进一步的说,当初始化一个类对象需要调动过多的资源,或者通过new操作来得到一个类对象时需要一些较为繁杂的数据处理时可使用原原创 2017-09-29 11:14:55 · 180 阅读 · 0 评论 -
设计模式-单例模式
单例模式(Singleton) 单例模式是软件开发比较简单的一种设计模式,也是日常用到的比较多的一种设计模式,这种模式属于创建模式。 1. 单例模式具有以下特点: 2. 只有一个实例; 3. 有类自己唯一的创建这个实例; 4. 该实例可以被全局的访问;??? 2. 具体什么时候会用到单例模式的类呢? 通常情况下,我们想创建这样一个类,它具有较强的工具属性,甚至不需要原创 2017-09-27 11:20:01 · 179 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式(Adapter Pattern) 1. 目的是什么: 将一个类的借口转换成客户希望的另一种类的借口。通过接口模式的使用,可以使得原来由于接口不兼容而不能正常工作的那些类可以一起工作。 假设有一个接口类Target是客户期望的。 有另一个接口Adaptee,是客户所不能直接对接工作的。 此时客户想对接Adaptee进行工作。 2. 实现思路: 通过将原创 2017-10-05 07:26:27 · 253 阅读 · 0 评论 -
设计模式 - 享元模式
享元模式(FlyweightPattern) 基本概念: 享元模式通过重用现有的对象,从而减少创建对象的数量,达到减少内存占用和提高性能的目的。 目的是什么: 运用共享技术来有效地支持大量细粒度的对象。 主要解决什么样的问题: 有时需要使用大量的同类对象来进行一项工作。 重点剖析: 原件要有一个关键特征作为key; 一个map,用于存放key-value; 举例: 不同的汽车原创 2017-10-11 09:53:39 · 252 阅读 · 0 评论 -
设计模式 - 外观模式
外观模式(Façade Pattern) 基本概念: 外观模式的主用工作室屏蔽实际的实例化操作,利用一个界面类(暂且称为界面类,是直接针对客户的类,不是真正的UI类)来生成一个个需要的对象。外观模式非常像工厂模式,不同点是外观模式的界面类中已经明确了要创建的实例对象。 什么时候用到外观模式: 对于用户来说,只需通过某个接口获得实例对象,而并不需要知道某个类的具体创建的过程。如一个系统(sy原创 2017-10-10 09:11:38 · 855 阅读 · 0 评论 -
设计模式(C++) - 首页
设计模式是代码设计经验的总结,具有极高的参考价值。 通过对代码设计模式的学习和反复运用,能够写出更搞笑,组织性更强,更易于维护的代码。 在此以C++语言为例,讲解一系列的设计模式。 当然,在博客中的讲解大都比较宽泛,着重在于代码示例。 有对代码不理解或有其他疑问的朋友可随时发邮件讨论,邮箱tecsai@163.com。 相互学习,相互促进!原创 2017-10-09 10:01:23 · 193 阅读 · 0 评论 -
设计模式 - 装饰器模式
装饰器模式(DecoratorPattern) 基本概念: 装饰器模式属于结构型模式,用于向一个现有的类对象中添加新的功能。顾名思义,一个新的功能就像一个新的装饰一样,装饰了现有的对象,但又不能改变原有对象的结构。 主要解决什么问题: 面向对象编程中,为了对一类对象增加新的功能,我们通常的做法是派生一个新类,通过添加一些功能,从而得到一个具有更丰富功能的类对象。此时的问题在于,如果继承层次原创 2017-10-09 09:56:56 · 194 阅读 · 0 评论 -
设计模式-组合模式
组合模式(CompositePattern) 本来都是早上准备设计模式,之后开始一天的工作。然而今天上午有很重要的事情。 最近在倒腾caffe,关于人脸识别的东西。 caffe是基于C++开发的机器学习框架,亮点在于卷积神经网络(最近很火啊)。 顺便为自己吆喝一声,有感兴趣的,可以交流。如果身在济南的,可以当面交流。我QQ544890059,邮件tecsai@163.com. 回归原创 2017-10-08 16:07:14 · 234 阅读 · 0 评论 -
设计模式-过滤器模式
过滤器模式(Filter Pattern) 基本概念: 过滤器模式用于在一个列表(或其他容器)中,有条件的过滤一组对象。在容器中存放一组对象,按照事先约定好的规则,从这一组对象中返回一个个体或满足相应规则的子集合。 具体应用举例: 例如车库里停放着一定数量的汽车,有BENZ,BMW,AUDI,LEXUS等,车型有SUV,MPV, JEEP, VAN等,司机性别有男,有女。这个时候,我们想列原创 2017-10-07 10:02:58 · 500 阅读 · 0 评论