首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
设计模式
chirpyli
创建于2022-02-19
订阅专栏
设计模式学习
等 1 人订阅
共12篇文章
创建于2022-02-19
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
组合模式(Composite Pattern)
组合模式(Composite Pattern)—— 将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 问题:在开发中,我们经常可能要递归构建树状的组合结构,Composite 模式则提供了很好的解决方案。 主要解决:它在…
模板模式(Template Pattern)
模板模式(Template Pattern) —— 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(…
工厂模式(Factory Pattern)
解决方案:建立一个工厂来创建对象。 当然也可以根据不同的情况,采用建造者模式或者原型模式,总之,你需要另一个创建者角色对象来帮助你产生创建构造对象实例。这里我们将工厂模式。 这三种模式从上到下逐步抽象,并且更具一般性。GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(…
策略模式(Strategy Pattern)
策略模式(Strategy Pattern) —— 定义一系列的算法,把它们一个个封装起来,并且使它们可互相替换。本模式使得算法的变化可独立于使用它的客户。 需要使用一个算法的不同变体。(例如对称加密算法,可使用AES、RSA、DES等) 一个类定义了多种行为,并且这些行为在这…
观察者模式(Observer Pattern)
观察者模式(Observer Pattern) —— 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。 观察者模式可以理解为发布-订阅模式,即多个订阅者(观察者)向发布者(被观察者)订阅状态信息,当发布者更新状态时会将状…
代理模式(Proxy Pattern)
代理模式——为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 解决的问题场景: 在直接访问对象时会带来问题,有些对象由于某些原因(对象创建开销很大,或者某些操作需要安全控…
装饰器模式(Decorator Pattern)
装饰器模式——允许向一个现有的对象添加新的功能,同时又不改变其结构。 这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装,不是通过继承而是通过组合实现的。 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 在不影响其他对象的情…
迭代器模式(Iterator Pattern)
意图:提供一种方法顺序访问一个聚合对象中各个元素,而又无需暴露该对象的内部表示。 主要解决的问题:不同的方式来遍历整个整合对象。 何时使用:遍历一个聚合对象。 如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。 应用实例:STL中的各种迭代器就是最典型的应用。 它支持…
桥接模式(Bridge Pattern)
Bridge模式——将抽象部分与它的实现部分分离,使得它们可以独立地变化。 Bridge模式,将系统分为两个相对独立的部分,一个是抽象部分,一个是实现部分。Bridge模式是将抽象和实现分别独立实现。使用组合的方式将抽象和实现彻底解耦,这样的好处是抽象和实现可以分别独立地变化,…
单例模式(Singleton Pattern)
单例模式(Singleton Pattern) —— 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 何为单例模式,在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:保证一个类只有一个实例,并提供一个访问它的全局访问点。首先,需要保证一个类只有一个实例;在类…
建造者模式(Builder Pattern)
在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。这种情况抽象出来的解决方案就是Builder模式。 建造者模式,就是通过其他对象(建…
原型模式(Prototype Pattern)
Prototype模式——简单理解就是新对象的创建可以通过已有对象进行创建。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口Clone,Clone实现和具体的实现语言相关,在C++中通过拷贝构造函数实现。 原型模式通过复制原型而获得新对象的创建功能,能够生产…