![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
方法论
文章平均质量分 81
请给我一根烟的时间
请给我一根烟的时间,我将重新上路
展开
-
设计模式之中介模式Mediator Pattern——所有编程框架都会使用的模式
中介模式的中文翻译非常形象。大家买房子要中介,中介做的什么事情呢?我们先不会回答这个问题。而是反问依据,如果没有中介,我们买房子的场景会是怎样?其实上面所说的还可能只是其中一角,这也是为什么绝大部分人都选择中介来帮忙购房或中介来托管房屋,进行售房。有了中介,世界就变得如此简单,比如对于购房者而言,只要关注:当然,对于售房者而言,也是一样的简单。因为中介为我们屏蔽了购房过程中的所有角色:购房者 * 售房者 * 银行 * 房地产交易中心,每个角色关注自己的诉求和需要做的事情即可。这就是中介者模式的魅力。还有很多原创 2022-06-10 00:27:08 · 206 阅读 · 1 评论 -
设计模式之桥接模式(Bridge Pattern):我允许你的自我,减去的是羁绊,留下的牵挂
概念桥接模式(Bridge Pattern)是设计模式中最复杂的模式之一,它把事物对象和该对象的具体行为、具体特征分离开来,使它们可以独自进行变化和更改。这样的解释可能比较抽象和令人费解,读者可以通过下面的应用场景进一步来理解。应用场景我们还以绘制图形为例,比如我们要绘制矩形Rectangle、Circle、Triangle,我们需要至少需要定义3个形状类来表示,如果我们要绘制的图形还有不同的颜色,如Red、Yello、Green等,此时我们可能有一下两种设计方案:为每个形状类都提供颜色的实现,比原创 2022-05-28 21:39:01 · 189 阅读 · 2 评论 -
设计模式-外观模式Facade Pattern:我要面对全世界的复杂,只是为你简单
外观模式Facade Pattern,有时又译为门面模式,这是开发人员的经常运用的一种设计模式,在服务器端的开发我们通常都会采用一个MVC类型的框架的来辅助开发,比如Spring MVC、Struts2等。前端开发人员只需要关注服务端提供的接口,而无需进一步了解接口内部如何去做子系统之间的协调及调用。外观模式要解决的问题就是让客户端对各个子系统的调用变得间的。下图是《设计模式》上的一个的插图,Facade将众多复杂的子系统对Client屏蔽开来,Client只需要关注Facade提供的一个简单接口即可。原创 2022-05-28 21:29:44 · 241 阅读 · 2 评论 -
设计模式私家笔记——装饰器Decorator和代理Proxy不是两兄弟
刚学习设计模式的时候,容易对装饰器模式和代理模式有所混淆,所以笔者特意将两者放在一起进行讲解,对比其相似性及区别。装饰器模式 Decorator Pattern我们最初接触装饰器模式,可能是在学习Java的IO相关操作的时候,下面一些类大家或多或少都使用过:java.io.BufferedInputStream(InputStream)java.io.DataInputStream(InputStream)java.io.BufferedOutputStream(OutputStream)ja原创 2022-05-24 00:09:19 · 146 阅读 · 0 评论 -
设计模式私家笔记-适配器模式Adapter
场景:我们已经有一些已有的系统对外提供服务,但是这些服务不能符合客户的接口形式要求,或者不是基于开放的标准协议构建的。这时候我们需要在已有接口之上增加一个适配层来满足对外的服务需要。适配层往往不是提前的设计,而是基于现有现有的系统进行的妥协和适配。生活中常见的例子比如:美国的电压是110V,中国的电压是220V,购买自美国的电脑电源就需要一个电源适配器。在IE浏览器盛行的时代,他的很多接口都不是符合后来的WEB标准的,所以很多前端框架为了能够提供基于标准协议的SDK,会为了IE做许多的适配工作。通过.原创 2022-05-07 13:11:12 · 272 阅读 · 0 评论 -
OOP设计原则SOLID——开闭原则Open-Close Principle
开闭原则的背后,除了强调扩展的可能性,更是想推崇模块的稳定性。要做到这样,需要在设计之前就要花很多经理去理解业务流程,去了解更多可能的业务场景。这样才能去抽象出不变的部分是什么,这部分通常包括流程逻辑和核心业务逻辑,是经得起推敲的,这部分的变更也应当是极其慎重的。原创 2022-05-07 11:53:53 · 448 阅读 · 1 评论 -
设计模式私家笔记-单例模式Singleton
场景:有的情况下,我们只需要创建一个实例,以此来节省创建和销毁的消耗,以及保持该实例的稳定性(不希望被外部破坏或篡改)此时我们可以应用单例模式来创建该实例的对象,下面列举几种方法,并且说明其各自的使用场景和优缺点:饿汉模式顾名思义,我很饥饿,我上来就创建该实例,不惯用不用得着,并且以后都使用该实例。示例代码:class Mgr { private static final INSTANCE = new Mgr(); private Mgr() {} public static Mgr ge.原创 2022-05-06 00:38:57 · 157 阅读 · 0 评论 -
OOP设计原则SOLID——单一职责原则Single-Responsibility Principle
SOLID是5个面向对象设计原则英文单词的缩写,旨在帮助软件设计变得可理解、可伸缩、可维护。在 Robert C. Martin(他是一位软件工程师,也是一位大学老师)2000年的文章《设计原则和设计模式中》,这5个原则首次被提出来。SOLID原则分别指:单一职责原则:有且只有一个引起变更的原因开闭原则:软件实体应该被设计为对扩展开放,对修改关闭里式替换原则:使用基类引用(或指针)的方法,应该无需关注基类的继承(派生)类,就能够使用。也可以参考面向契约的设计接口隔离(分割)原则:多个原创 2022-05-05 23:42:20 · 355 阅读 · 1 评论 -
设计模式私家笔记——概述:设计模式是银弹吗?
就好像软件世界中的经典语录——XXX不是银弹,设计模式同样可以套用一下——设计模式不是银弹。好的设计好代码包括对业务的准确表达,要兼顾未来(这个未来可长可短)的扩展性和维护性,要充分考虑成员的理解水平。所以就像上图表达的一样,哪怕我们用上了各种软件原则、各种设计模式,也未必是是最好的选择。当然我们不会因此就放弃设计模式的学习和使用,它是一把上好的武器,只有理解了它,在合适的时候,我们才能让它绽放光彩!原创 2022-05-05 00:05:27 · 429 阅读 · 0 评论