设计模式
设计模式是一种几乎是约定俗成的编程规范,也是一种可以体现编程者编码修行的良好手段。
dawn
数学就这么简单有趣。
展开
-
设计模式之外观模式(C# / JavaScript / PHP / Java / Python / C++ 演示代码)
GoF定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。原创 2022-06-30 17:02:36 · 385 阅读 · 0 评论 -
设计模式之访问者模式(C# / JavaScript / PHP / Java / Python 演示代码)
GoF定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。...原创 2022-06-20 22:20:17 · 207 阅读 · 1 评论 -
设计模式:建造者模式
GoF定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在应用程序中,一些功能基本固定,但是这些功能的组合却可能经常变化,这个时候可以将将变与不变分离开,创建和提供不同的实例。...原创 2022-06-19 00:15:36 · 79 阅读 · 0 评论 -
设计模式:代理模式
为其他对象提供一种代理以控制对这个对象的访问。在访问一个对象时增加中间层,做一些控制,通过中间层来访问被代理的对象。原创 2022-06-19 00:04:14 · 67 阅读 · 0 评论 -
设计模式:享元模式
GoF定义:运用共享技术有效地支持大量细粒度的对象。大量的对象创建必定要耗费大量的系统资源,而这些对象如果有一些共同属性或者方法,那么就没有必要创建多个对象了,使用共享技术可以减少对象的创建。...原创 2022-06-18 00:35:15 · 69 阅读 · 0 评论 -
设计模式:装饰器模式
GoF定义:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活。举例:家庭装修的费用有简装和精装之分,电器的购买需要另外算钱,购买不同的电器以及它们的数量的费用是不一样的,在程序实现上,可以使用装饰器模式。...原创 2022-06-18 00:05:50 · 103 阅读 · 0 评论 -
设计模式:策略模式
GoF定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化 。我的理解就是根据客户的需求定制一个算法系列,可以很方便地随时替换当前的算法。...原创 2022-06-17 00:33:54 · 88 阅读 · 0 评论 -
设计模式:状态模式
GoF定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。这个对应的就是Switch的分支判断,当每个条件达到时就执行对应的代码。但是如果分支条件多了就需要修改代码,这样违背了开放封闭的原则。下面的代码演示的就是采用注册制,每个处理对象都有对应的条件和处理动作,满足条件就执行的代码,并且这样有个好处就是以后有了新的条件,那么就编写对应的处理动作,加上它的满足条件,注册一下就可以了。...原创 2022-06-17 00:19:13 · 84 阅读 · 0 评论 -
设计模式:备忘录模式
GoF定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。简单理解就是备忘录模式用于保存操作的状态,以便后续的回退操作。比如系统的剪贴板的操作就是最典型的应用实例。 ...原创 2022-06-16 11:55:19 · 105 阅读 · 0 评论 -
设计模式:中介者模式
GoF定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。这是消息传递中经常使用的一种模式,各个消息的发送者之间并不相互了解,但是它们之间是可以相互通讯的,就是通过一个消息转发中心来实现。也好比邮件或者快递包裹的发送。比如我需要邮寄一份邮件,我需要填写相关内容:接收者以及接收的内容,到邮局(注册)发送就可以了。...原创 2022-06-15 23:26:22 · 94 阅读 · 0 评论 -
设计模式:责任链模式
GoF定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。这个模式适合制定流程、任务类的程序设计,预先设定好流程或者任务,然后从流程的起始点开始,程序按照流程设定自动去完成。......原创 2022-06-14 21:57:12 · 90 阅读 · 0 评论 -
设计模式:命令模式
GoF定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。原创 2022-06-14 00:07:28 · 91 阅读 · 0 评论 -
设计模式:组合模式
设计模式就是在特定环境下,针对特别的问题由那些聪明的人总结出来的特定方法,组合模式就是很好的说明,专门针对解决树状结构的一系列问题而产生的解决办法。原创 2022-06-13 13:20:01 · 92 阅读 · 0 评论 -
设计模式之观察者模式(C# | JavaScript | PHP | Python演示代码)
GoF定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都能得到通知并被自动更新。简单理解:一个对象发生了改变,那么与它相关联的对象就会都接收到它的改变并可以做出响应。有句俗话是牵一发动全身,这里就是一动多响应,通俗地理解也就是订阅者模式,如果你订阅了某个频道,那么这个频道的内容发生了改变,你可以接收到它的新内容。.........原创 2022-06-13 11:35:36 · 129 阅读 · 0 评论 -
设计模式:桥接模式
GoF定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。这应该是对面向接口和面对对象编程很好的解释了。比如,不管应用怎样变化,只要接口不变,那么系统就比较容易应对变化;只要基础(抽象)类定义得扎实合理,系统就可以呈现比较稳定的特征。...原创 2022-06-11 23:35:19 · 147 阅读 · 0 评论 -
设计模式:适配器模式
生活中,适配器模式的例子很多。比如:计算机只有HDMI的输出接口,而显示器却是VGA的输入接口,怎么办?买一个HDMI转VGA的适配器就可以了,还有HTMI转大DP、转TypeC等等,这样的适配器不少。体现在编程上,假如应用系统A有读取Excel数据功能,应用系统B可以将数据保存到数据库中,我想使用这两个系统完成读取Excel数据并保存到数据库中。怎么做?...原创 2022-06-09 23:16:08 · 143 阅读 · 0 评论 -
设计模式:简单工厂、工厂、抽象工厂
简单理解:① 简单工厂模式就是一个工厂生产多个产品。② 工厂就是每个工厂生产单一的产品。③ 抽象工厂就是每个工厂生产多个产品。那么具体实现上有哪些细节呢?原创 2022-06-07 21:37:29 · 837 阅读 · 0 评论