随笔分类 -  设计模式

摘要:**低耦合**: 耦合就是元素与元素之间的连接,感知和依赖量度。这里说的元素即是功能,对象,系统,子系统,模块。 例如:现在有方法A和方法B 我们在A元素去调用B元素,当B元素有问题或者不存在的时候,A元素就不能正常的工作,那么就说元素A和元素B耦合 **耦合带来的问题**: 当元素B变更或者不存在 阅读全文
posted @ 2023-05-28 23:43 CD、小月 阅读(44) 评论(0) 推荐(0) 编辑
摘要:**什么是高内聚、低耦合?** 起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。 **耦合性也称块间联系。** 指软件系统结构中各模块间相互联系紧密程度的一种度量。 模块之间联系越紧密,其耦合性就越强,模块的独立性则越差 阅读全文
posted @ 2023-05-28 23:42 CD、小月 阅读(110) 评论(0) 推荐(0) 编辑
摘要:定义 访问者模式,针对于对象结构中的元素,定义在不改变该对象的前提下访问其结构中元素的新方法。 // 访问者模式:DOM事件绑定 var bindEvent = function(dom, type, fn, data) { if (dom.addEventListener) { dom.addEv 阅读全文
posted @ 2023-04-27 22:04 CD、小月 阅读(38) 评论(0) 推荐(0) 编辑
摘要:定义: 在继承的基础上, 在父类中定义好执行的算法。 模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序****。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方 阅读全文
posted @ 2022-11-04 00:35 CD、小月 编辑
摘要:定义: 建造者模式,将一个复杂对象的构建层与其表示层相互分离,同样的构建过程可采用不同的表示。 对比 建造者模式和工厂模式(包括抽象工厂) 工厂模式(包括抽象工厂)主要是为了创建对象实例或者类簇,关心的是最终产出(创建)的是什么,而不关心创建的过程。 建造者模式的目标任务也是创建对象,但该模式更多关 阅读全文
posted @ 2022-10-02 09:43 CD、小月 阅读(16) 评论(0) 推荐(0) 编辑
摘要:中介者模式: 对象和对象之间借助第三方中介者进行通信。 中介者模式的作用就是解除对象与对象之间的紧耦合关系。 增加一个中介者对象后,所有的相关对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可。中介者使各对象之间耦合松散,而且可以独立地改变它们之间的交互。 阅读全文
posted @ 2022-09-27 10:35 CD、小月 阅读(16) 评论(0) 推荐(0) 编辑
摘要:简单工厂模式(Simple Factory),又叫静态工厂方法,由一个工厂对象来决定创建某一种产品对象类的实例,主要用来创建同一类对象。 实际案例: 比如你去水果店购买各种水果 优点: 类型之间的解耦 缺点: 增加了与产品类平行的工厂类,也会增加很多额外的代码。当需要增加子类的时候,需要修改工厂类, 阅读全文
posted @ 2022-08-19 10:14 CD、小月 阅读(7) 评论(0) 推荐(0) 编辑
摘要:这里写自定义目录标题 必须先订阅再发布吗总结 发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。在 JavaScript 开发中,我们一般用事件模型来替代传统的发布—订阅模式。 实现一个发布订阅模式 var Event = 阅读全文
posted @ 2022-07-07 03:57 CD、小月 阅读(32) 评论(0) 推荐(0) 编辑
摘要:定义 工厂方法模式,通过对产品类的抽象使其创建业务,主要负责创建多类产品的实例。 工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。 可以把这个工厂模 阅读全文
posted @ 2022-05-05 23:35 CD、小月 阅读(13) 评论(0) 推荐(0) 编辑
摘要:定义 备忘录模式,在不破坏对象封装性的前提下,在对象之外捕获并保存该对象的内部状态,以便日后在该对象使用时恢复到之前的某个状态。 问题引入 // 事件:下一页 $('#next_page_btn').click(function() { // 获取新闻列表容器 var $news = $('#new 阅读全文
posted @ 2020-05-12 00:54 CD、小月 阅读(9) 评论(0) 推荐(0) 编辑
摘要:定义 桥接模式(Bridge),将抽象部分与实现部分分离,使他们可以独立的变化。 这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 桥接模式需要一个 桥,来连接抽象部分和实现部分。 桥接模式,在系统中沿着多个维度变化,不仅不会增加系统的复杂度,还可以达到解 阅读全文
posted @ 2020-05-11 23:42 CD、小月 阅读(29) 评论(0) 推荐(0) 编辑
摘要:定义: 抽象工厂其实是实现子类继承父类的方法,只是一个方法。抽象工厂模式一般用在多人协作的超大型项目中,并且严格的要求项目以面向对象的思想进行完成。 简单工厂模式和工厂模式都是直接生产实例的,抽象工厂更像是生产工厂,其实抽象工厂其实是实现子类继承父类的方法。 说白了 抽象工厂模式 我认为就是工厂功能 阅读全文
posted @ 2020-05-08 19:03 CD、小月 阅读(11) 评论(0) 推荐(0) 编辑
摘要:设计模式总结 设计原则和编程技巧单一职责原则(SRP)定义设计模式中体现何时应该分离职责SRP 原则的优缺点 最少知识原则(LKP)- 迪米特法则定义设计模式中体现封装在最少知识原则中的体现 开放-封闭原则定义最佳实践(帮助我们编写遵守开放-封闭原则的代码)设计模式中体现接受第一次愚弄开放- 封闭原 阅读全文
posted @ 2020-05-06 23:59 CD、小月 阅读(9) 评论(0) 推荐(0) 编辑
摘要:适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。 适配者模式: 主要用于解决两个接口之间不匹配的问题。 例子: 我们向 googleMap 和 baiduMap 都发出“显示”请求时, googleMap和 baid 阅读全文
posted @ 2020-05-05 11:13 CD、小月 阅读(5) 评论(0) 推荐(0) 编辑
摘要:状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变。 状态模式: 将事物内部的每个状态分别封装成类, 内部状态改变会产生不同行为。 通常我们谈到封装,一般都会优先封装对象的行为,而不是对象的状态。但在状态模式中刚好相反,状态模式的关键是把事物的每种状态都封装成单独的类,跟 阅读全文
posted @ 2020-05-05 10:52 CD、小月 阅读(6) 评论(0) 推荐(0) 编辑
摘要:装饰者模式(使用装饰函数装饰对象)可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象 在 JavaScript 中,几乎一切都是对象,其中函数又被称为一等对象。在平时的开发工作中,也许大部分时间都在和函数打交道。在 JavaScript 中可以很方便地给某个对象扩展属性和方法 阅读全文
posted @ 2020-05-04 00:01 CD、小月 阅读(3) 评论(0) 推荐(0) 编辑
摘要:职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 职责链模式的名字非常形象,一系列可能会处理请求的对象被连接成一条链,请求在这些对象之间依次传递,直到遇到一个可以处理它的对象,我们把这 阅读全文
posted @ 2020-05-03 17:05 CD、小月 阅读(20) 评论(0) 推荐(0) 编辑
摘要:享元模式是一种优化程序性能的模式, 本质为减少对象创建的个数。 享元模式的核心是运用共享技术来有效支持大量细粒度的对象。 如果系统中因为创建了大量类似的对象而导致内存占用过高,享元模式就非常有用了。 例子: 某商家有 50 种男款内衣和 50 种款女款内衣, 要展示它们 传统方式: 造 50 个塑料 阅读全文
posted @ 2020-05-02 23:49 CD、小月 阅读(9) 评论(0) 推荐(0) 编辑
摘要:组合模式将对象组合成树形结构,以表示“部分-整体”的层次结构。 除了用来表示树形结构之外,组合模式的另一个好处是通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性 表示树形结构 提供了一种遍历树形结构的方案,通过调用组合对象的 execute(泛指) 方法,程序会递归调用组合对象下面 阅读全文
posted @ 2020-05-02 14:01 CD、小月 阅读(6) 评论(0) 推荐(0) 编辑
摘要:命令模式 基于面向对象的命令模式JavaScript 中的命令模式智能命令与傻瓜命令 命令模式最常见的应用场景是:有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系。 命令 阅读全文
posted @ 2020-05-01 23:17 CD、小月 阅读(13) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示