<
一枝梅的博客
博客
随笔
软件
专题
标签
留言板
开往
专题:设计模式
共33篇
初识设计模式
工作好些年了,设计模式这么好玩的东西一直没有好好整理整理,这次抽空好好给它抽筋扒皮梳理清楚它。在正式开干之前,得先搞清楚一些问题:设计模式是什么?我们为啥要用设计模式? 一、设计模式是什么 设计模式(design pattern)是对软件设计中...
#设计模式
一枝梅
10月前
261
设计模式原则:单一职责原则
单一职责原则的英文名称是Single Responsibility Principle,简称是SRP,顾名思义:一个类只负责一项职责。它的官方定义是 单一职责原则(Single Responsibility Principle, SRP),Th...
#设计模式
一枝梅
10月前
297
设计模式原则:接口隔离原则
一、接口隔离原则定义 接口隔离原则(Interface Segregation Principle),又称为ISP原则,官方定义如下 1、Clients should not be forced to depend upon interface...
#设计模式
一枝梅
10月前
237
设计模式原则:依赖倒置原则
一、依赖倒置原则定义 依赖倒置原则(Dependence Inversion Principle,DIP)的官方定义如下: 1、High level modules should not depend upon low level modules...
#设计模式
一枝梅
10月前
261
设计模式原则:里氏替换原则
一、里氏替换原则定义 里氏替换原则(Liskov Substitution Principle,LSP) 第一种定义,也是最正宗的定义: If for each object o1 of type S there is an object o2 ...
#设计模式
一枝梅
10月前
290
设计模式原则:迪米特法则
一、迪米特法则的定义 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP),虽然名字不同,但描述的是同一个规则: One object should have a m...
#设计模式
一枝梅
10月前
221
设计模式原则:开闭原则
一、开闭原则定义 开闭原则定义:Software entities like classes,modules and functions should be open for extension but closed for modificati...
#设计模式
一枝梅
9月前
237
设计模式原则:合成复用原则
定义如下: Try to use composition / aggregation instead of inheritance ( 尽量使用组合/聚合的方式,而不是使用继承 ) 合成复用原则的优点: 1、松耦合:聚合和组合关系比继承关系更...
#设计模式
一枝梅
9月前
240
设计模式(一):单例模式(上)
一、单例模式的定义 单例模式(Singleton Pattern)是一个比较简单的模式,其定义如下: Ensure a class has only one instance, and provide a global point of acce...
#设计模式
一枝梅
9月前
263
设计模式(一):单例模式(下)
在上一篇文章《设计模式(1):单例模式(上)》中讲解了单例模式的定义以及四种写法,最后着重讲解了懒汉式单例模式的线程安全性问题,但是没有讲解单例模式在实际coding的时候怎么用的,这篇文章将会讲解四种单例模式的应用案例。 1、饿汉式 饿汉式单例...
#设计模式
一枝梅
9月前
224
设计模式(二):简单工厂模式
一、简单工厂模式定义 简介:简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为,在简单工厂模式中,可以根据参数的不同返回不同类的实例在软件开发中,当我们涉及到大量的创建某种或者某类对象时,就会使用到工厂模式,你只需要使用工厂对...
#设计模式
一枝梅
9月前
246
设计模式(三):工厂方法模式
在上一篇文章《设计模式(2):简单工厂模式》中,以文件解析为例,解释了简单工厂模式的用法,简单工厂模式确实简单,但是它有以下几个问题: 1、不符合开闭原则:当需要添加新的产品类型时,必须修改工厂类的代码,违背了开闭原则。这种修改可能会影响工厂类的...
#设计模式
一枝梅
9月前
240
设计模式(四):抽象工厂模式
一、抽象工厂定义 抽象工厂模式侧重于“产品族”的概念,有了这个概念之后,它允许工厂类中有多个抽象方法分别生产不同的对象,这些对象组成一个“产品族”,举个例子: 有这样一组对象:运输工具+ 引擎+ 控制器 。 它可能会有几个变体: 汽车+ 内燃机...
#设计模式
一枝梅
9月前
257
设计模式(五):原型模式
一、原型模式定义 Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this protot...
#设计模式
一枝梅
9月前
251
设计模式(六):建造者模式
一、建造者模式定义 建造者模式(英:Builder Pattern)是一种设计模式,又名:生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 说的通俗一点...
#设计模式
一枝梅
9月前
285
设计模式(七):适配器模式
一、适配器模式的定义 适配器模式是一种结构型设计模式,它的定义如下: Convert the interface of a class into another interface clients expect.Adapter lets clas...
#设计模式
一枝梅
9月前
240
设计模式(八):桥接模式
一、桥接模式定义 桥接模式(Bridge Pattern)也叫做桥梁模式,是一个比较简单的模式,其定义如下:Decouple an abstraction from its implementation so that the two can v...
#设计模式
一枝梅
9月前
403
设计模式(九):组合模式
一、组合模式的定义 组合模式(Composite Pattern)也叫合成模式,有时又叫做部分-整体模式(Part-Whole),主要是用来描述部分与整体的关系,其定义如下:Compose objects into tree structures...
#设计模式
一枝梅
9月前
254
设计模式(十):装饰者模式
一、装饰者模式定义 装饰模式(Decorator Pattern)是一种比较常见的模式,其定义如下:Attach additional responsibilities to an object dynamically keeping the s...
#设计模式
一枝梅
9月前
260
设计模式(十一):门面模式
一、门面模式定义 门面模式(Facade Pattern)也叫做外观模式,是一种比较常用的封装模式,其定义如下:Provide a unified interface to a set of interfaces in a subsystem.F...
#设计模式
一枝梅
9月前
229
设计模式(十二):享元模式
一、享元模式定义 享元模式(Flyweight Pattern)是池技术的重要实现方式,其定义如下:Use sharing to support large numbers of fine-grained objects efficiently....
#设计模式
一枝梅
9月前
233
设计模式(十三):代理模式
一、代理模式定义 代理模式(Proxy Pattern)是一个使用率非常高的模式,其定义如下: Provide a surrogate or placeholder for another object to control access to ...
#设计模式
一枝梅
9月前
226
设计模式(十四):访问者模式
一、访问者模式定义 访问者模式是一种行为型模式,而且是行为型模式中比较复杂的一种模式。 访问者模式(Visitor Pattern)的定义如下:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作...
#设计模式
一枝梅
8月前
225
设计模式(十五):模板模式(Template Method Pattern)
一、模板方法模式的定义 模板方法模式的定义如下: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。(Define the skeleton of an algorithm in...
#设计模式
一枝梅
8月前
237
设计模式(十六):策略模式(Strategy Pattern)
一、策略模式定义 策略模式定义比较简单,它的定义如下: 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换(Define a family of algorithms,encapsulate each one,and make them ...
#设计模式
一枝梅
8月前
253
设计模式(十七):责任链模式(Chain of Responsibility Pattern)
一、责任链模式定义 责任链模式的定义如下: 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。(Avoid coupling the sender of ...
#设计模式
一枝梅
8月前
240
设计模式(十八):观察者模式(Observer Pattern)
一、观察者模式定义 观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/subscribe),它是一个在项目中经常使用的模式,它是一种行为型设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” ...
#设计模式
一枝梅
8月前
313
设计模式(十九):状态模式(State Pattern)
一、状态模式定义 当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。(Allow an object to alter its behavior when its internal state changes.The objec...
#设计模式
一枝梅
8月前
305
设计模式(二十):命令模式(Command Pattern)
一、命令模式定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。(Encapsulate a request as an object,thereby letting y...
#设计模式
一枝梅
8月前
359
设计模式(二十一):备忘录模式(Memento Pattern)
一、备忘录模式的定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。(Without violating encapsulation,capture and external...
#设计模式
一枝梅
8月前
290
设计模式(二十二):中介者模式(Mediator Pattern)
一、中介者模式定义 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。(Define an object that encapsulates how a set of ob...
#设计模式
一枝梅
8月前
341
设计模式(二十三):迭代器模式(Iterator Pattern)
一、迭代器模式定义 迭代器模式提供了一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。(Provide a way to access the elements of an aggregate object sequentiall...
#设计模式
一枝梅
8月前
342
设计模式(二十四):解释器模式(Interpreter Pattern)
一、解释器模式的定义 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。(Given a language, define a representation for its grammar along ...
#设计模式
一枝梅
8月前
455
阅读榜单
455人浏览
设计模式(二十四):解释器模式(Interpreter Pattern)
TOP1
设计模式(八):桥接模式
9月前
403人浏览
TOP2
设计模式(二十):命令模式(Command Pattern)
8月前
359人浏览
TOP3
设计模式(二十三):迭代器模式(Iterator Pattern)
8月前
342人浏览
TOP4
设计模式(二十二):中介者模式(Mediator Pattern)
8月前
341人浏览
TOP5
设计模式(十八):观察者模式(Observer Pattern)
8月前
313人浏览
TOP6
最新发布
狂盗一枝梅
2024-04-12
455次阅读
留言
设计模式(二十四):解释器模式(Interpreter Pattern)
一、解释器模式的定义 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。(Given a language, define a representation for its grammar along ...
博客
评分
回复
狂盗一枝梅
2024-04-11
342次阅读
留言
设计模式(二十三):迭代器模式(Iterator Pattern)
一、迭代器模式定义 迭代器模式提供了一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。(Provide a way to access the elements of an aggregate object sequentiall...
博客
评分
回复
狂盗一枝梅
2024-04-11
341次阅读
留言
设计模式(二十二):中介者模式(Mediator Pattern)
一、中介者模式定义 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。(Define an object that encapsulates how a set of ob...
博客
评分
回复