设计模式
文章平均质量分 57
CODER-V
全栈干货博主
展开
-
【GoF 23 概念理解】AOP面向切面编程
AOP是一种编程范式,提供了一种从宁一个角度来考虑程序结构以完善面向对象编程(OOP)AOP是一个思想上的变化——主从换位,让原本主动调用的模块变成了被动等待,甚至在毫不知情的情况下被织入了很多新的功能。弥补了面向对象编程OOP的不足。在开发中,我们考虑问题都是纵向的,也就是默认都是从上到下,上层依赖下层。拿我们最熟悉的三层架构来说,也是从上到下来考虑的,通常都是表现出调用逻辑层,逻辑层调用数据层。原创 2023-04-02 09:38:44 · 515 阅读 · 0 评论 -
【GoF 23】篇6:模板方法
模板方法固定了算法的结构简单来说就是,定义好了一套算法,子类可以在这套算法的基础上进行修改(可以继承或重写)原创 2023-03-11 17:31:03 · 78 阅读 · 0 评论 -
【GoF 23】篇5:代理模式
为其他对象提供一种代理以控制对这个对象的访问迪米特法则告诉我们:只与你的直接朋友交谈,不跟“陌生人”说话。保证A-B-C链式调用,不要A直接与C通信。缺点就是B有点冗余,但重点还是要保证系统结构清晰。也就是说对象A要不应该直接操作对象C,应该操作对象B,由对象B去对对象C进行同样的操作。代理模式分为:静态代理、动态代理。原创 2023-03-11 17:06:37 · 276 阅读 · 0 评论 -
【GoF 23】篇4:原型模式
原型模式简单来说就是将原对象拷贝一份,然后在副本上进行相应的操作,但是原对象不会产生任何变化,可以提高效率。在JavaScript中Object对象就是所有对象的顶级原型,所有对象都有一个原型即Object,原型是JavaScript实现继承的基础。原型链就是对象逐层继承的一个链式。原型链就是描述一些列原型对象的继承关系的链式结构。原型的实现是基于拷贝的,但是注意是**深拷贝**,至于为什么我想不必我多言。原型链的理解很简单,这里就不作代码演示。>注意:copy和new是有区别的。>- n原创 2023-03-11 16:24:08 · 77 阅读 · 0 评论 -
【GoF 23】篇3:抽象工厂
提供一个创建一系列相关或互相依赖的对象接口,而无需指定它们的具体类。抽象工厂是一个超级工厂,是其他工厂的工厂,或将简单工厂进一步抽象。这样来理解:我们将科技公司可以做的事情简要枚举出来,生产手机、电脑、路由器等等,比如小米、华为、联想等公司都可以生产这些产品。这里,我们就可以将科技公司可以生产的产品全部在一个接口中枚举出来,这个接口就可以看作一个抽象工厂。而小米、华为、联想这些公司就是普通工厂。抽象工厂将普通工厂可以生产的产品进行抽象出来。这里有两个概念:产品簇、产品级。原创 2023-03-11 15:58:07 · 363 阅读 · 0 评论 -
【GoF 23 概念理解】IoC/DI(控制反转/依赖注入)
参与者都有谁?依赖:谁依赖于谁?为什么要依赖?注入:谁注入于谁?到底注入什么?控制反转:谁控制谁?控制什么?为何叫反转(有反转就有正转了)?原创 2023-03-11 08:53:28 · 453 阅读 · 2 评论 -
【GoF 23】篇2:工厂方法
工厂方法类似简单工厂,只不过将对象实例化延迟到了子类来实现。工厂方法定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使得一个类的实例化延迟到其子类。好处:在父类不知道具体实现的情况下,完成自身功能的调用;而具体的实现延迟到子类来实现。原创 2023-03-10 21:14:59 · 138 阅读 · 0 评论 -
【GoF 23】23种设计模式与OOP七大原则概述
1. **开闭原则:** 对扩展开放,对修改关闭。也就是在扩展功能时,不能去修改原有的代码,而是在原有的代码基础上进行功能扩展。2. **里氏替换原则:** 继承必须确保超类所拥有的性质在子类中任然成立。尽量添加新的方法来实现新的功能,不要重写父类的方法来实现功能,否则程序的可复用性就会变差,在多态的场景下程序也会出现错误。3. **依赖倒置原则:** 要面向接口编程,不要面向现实编程。高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,这样就降低了程序的耦合度。4原创 2023-03-09 17:05:21 · 563 阅读 · 0 评论 -
【GoF 23】篇1:简单工厂模式
接口的思想:- 根据接口的作用和用途,浓缩下来就是“**封装隔离**”。- 通常提到的封装是对数据的封装,但是这里的封装是指“对被隔离体的行为的封装”,或“对被隔离体的职责的封装”;- 而隔离指的是“外部调用和内部实现的隔离”,外部只能通过接口调用方法,外部调用是不知道内部具体是怎么实现的,- 也就是说外部调用和内部实现是被接口隔离开的。使用接口的好处:- 由于外部调用和内部实现被接口隔离开了,那么只要接口不变,内部实现的变化就不会影响到接口内部,从而使得系统更灵活,具有更好的扩展性和可维护原创 2023-03-09 21:12:27 · 273 阅读 · 0 评论