设计模式
文章平均质量分 78
请给我两根烟的时间
朴实无华,淡然求索
展开
-
设计模式之中介者Mediator——没有“任何”框架不用这个模式
中介模式的中文翻译非常形象。大家买房子要中介,中介做的什么事情呢?我们先不会回答这个问题。而是反问依据,如果没有中介,我们买房子的场景会是怎样?1. 满世界找有可能买房子的房东?可能同时要跟20个房东打交道,跟房东约时间可真是看天气、看运气的事情2. 房产交易要签合同?我们要跟房东拟定合同?还要一起房地产交易中心做网签备案3. 如果全款购房的话,还稍微简单点。如果钱不够想分期怎么办?购房者还要跟银行打交道,可能还不止一家银行,因为各家银行的放款条件,贷款额度、贷款利率和贷款期限可能有所不同其实上面所说的还可原创 2022-06-10 00:59:56 · 71 阅读 · 0 评论 -
设计模式-桥接模式Bridge Pattern:爱虽放手,牵挂不减
概念桥接模式(Bridge Pattern)是设计模式中最复杂的模式之一,它把事物对象和该对象的具体行为、具体特征分离开来,使它们可以独自进行变化和更改。这样的解释可能比较抽象和令人费解,读者可以通过下面的应用场景进一步来理解。应用场景我们还以绘制图形为例,比如我们要绘制矩形Rectangle、Circle、Triangle,我们需要至少需要定义3个形状类来表示,如果我们要绘制的图形还有不同的颜色,如Red、Yello、Green等,此时我们可能有一下两种设计方案:1. 为每个形状类都提供颜色的实现,比如通原创 2022-05-28 22:14:38 · 85 阅读 · 0 评论 -
外观设计模式Facade Pattern:我要面对全世界的复杂,只是为你简单
外观模式Facade Pattern,有时又译为门面模式,这是开发人员的经常运用的一种设计模式,在服务器端的开发我们通常都会采用一个MVC类型的框架的来辅助开发,比如Spring MVC、Struts2等。前端开发人员只需要关注服务端提供的接口,而无需进一步了解接口内部如何去做子系统之间的协调及调用。外观模式要解决的问题就是让客户端对各个子系统的调用变得简单。下图是《设计模式》上的一个的插图,Facade将众多复杂的子系统对Client屏蔽开来,Client只需要关注Facade提供的一个简单接口即可。外观原创 2022-05-28 21:59:57 · 97 阅读 · 0 评论 -
设计模式——装饰器Decorator和代理Proxy不是两兄弟
刚学习设计模式的时候,容易对装饰器模式和代理模式有所混淆,所以笔者特意将两者放在一起进行讲解,对比其相似性及区别。装饰器模式 Decorator Pattern我们最初接触装饰器模式,可能是在学习Java的IO相关操作的时候,下面一些类大家或多或少都使用过:- java.io.BufferedInputStream(InputStream)- java.io.DataInputStream(InputStream)- java.io.BufferedOutputStream(OutputStream)- j原创 2022-05-24 00:22:51 · 89 阅读 · 0 评论 -
设计模式私家笔记——概述:设计模式是银弹吗?
就好像软件世界中的经典语录——XXX不是银弹,设计模式同样可以套用一下——设计模式不是银弹。好的设计好代码包括对业务的准确表达,要兼顾未来(这个未来可长可短)的扩展性和维护性,要充分考虑成员的理解水平。所以就像上图表达的一样,哪怕我们用上了各种软件原则、各种设计模式,也未必是是最好的选择。当然我们不会因此就放弃设计模式的学习和使用,它是一把上好的武器,只有理解了它,在合适的时候,我们才能让它绽放光彩!原创 2022-05-05 00:26:20 · 77 阅读 · 0 评论 -
设计模式私家笔记-适配器模式Adapter
场景:我们已经有一些已有的系统对外提供服务,但是这些服务不能符合客户的接口形式要求,或者不是基于开放的标准协议构建的。这时候我们需要在已有接口之上增加一个适配层来满足对外的服务需要。适配层往往不是提前的设计,而是基于现有现有的系统进行的妥协和适配。生活中常见的例子比如:美国的电压是110V,中国的电压是220V,购买自美国的电脑电源就需要一个电源适配器。在IE浏览器盛行的时代,他的很多接口都不是符合后来的WEB标准的,所以很多前端框架为了能够提供基于标准协议的SDK,会为了IE做许多的适配工作。通过.原创 2022-05-02 22:51:06 · 349 阅读 · 0 评论 -
设计模式私家笔记-单例模式Singleton
场景:有的情况下,我们只需要创建一个实例,以此来节省创建和销毁的消耗,以及保持该实例的稳定性(不希望被外部破坏或篡改)此时我们可以应用单例模式来创建该实例的对象,下面列举几种方法,并且说明其各自的使用场景和优缺点原创 2022-04-24 20:36:16 · 67 阅读 · 0 评论