-
设计模式(三):抽象工厂模式
2023-12-28
63610 浏览
抽象工厂模式抽象工厂模式(AbstractFactoryPattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要
-
模板方法设计模式:
2023-12-31
66648 浏览
模板方法设计模式:解决的问题:当功能内部一部分实现时确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。abstractclassGetTime{publicfinalvoidgetTime(){//此功能如果不需要复写,可加final限定longstart=System.currentTimeMillis();code();//不确定的功能部分,提取出来,通过抽象方法实现l
-
如何巧用设计模式,干掉if-else
2023-12-30
69181 浏览
前言物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态)。这里枚举几种回执类型:MT1101、MT2101、MT4101、MT8104、MT8105、MT9999,系统在收到不同的回执报文后,会执行对应的业务逻辑处理。当然,实际业务场景并没有那么笼统,这里以回执处理为演示案例模拟一个回执类@Dat
-
设计模式篇——原型模式(如何优雅地拷贝对象)
2023-12-29
67544 浏览
生活场景:招商信用卡给客户发送电子邮件现在好多人都会使用信用卡,而信用卡中心会每月向用户发送账单或者其他广告或者活动。比如现在招商信用卡中心要向10个客户发送一条抽奖活动的邮件,这10个人接收到的邮件的内容肯定是一样的,不一样的地方就是客户的一些基本信息展示。因此,我们可以使用一个通用的模板,然后把客户的信息放到模板中生成一份完整的电子邮件。根据分析,我们设计如下类图:代码清单如下。模板类:邮件类
-
设计模式篇——中介者模式(优化多对象依赖的必备利器)
2023-12-29
63970 浏览
场景:多部门相互依赖,协同工作相信大家都去超市买过东西,非常方便,而且超市货架上的货源不会断货,为了保证这一点,超市一定有自己的一个仓库,以便随时补货。既然有了仓库,就要有专门的人员从外面采购物品来存到仓库,针对这个场景,我们抽取出三个角色部门:销售部门、仓库苦闷、采购部门。这三个部门之间是相互依赖的。采购部门要根据销售部门的销售情况确定是否采购,也需要根据仓库的库存量决定是否采购,而销售部门只有
-
设计模式(一):策略模式
2023-12-28
65554 浏览
策略模式:策略模式,听这个意思就是说,这是一个策略,那么一般来说策略都是好几种方法吧,无论是打仗,或者打游戏,都会准备不同的几种策略,而在代码方面也是一样,策略模式也就是定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换策略模式解决的什么问题?在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护。什么时候使用策略模式呢?一个系统有许多许多类,而区分它们的只是他们直接的行
-
设计模式(二):工厂模式
2023-12-28
66007 浏览
工厂模式工厂模式(FactoryPattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用
-
JavaScript 常用设计模式
2023-12-26
67493 浏览
单例模式classAppState{counter=0;privatestaticinstanceRef:AppState;privateconstructor(){}staticgetInstance():AppState{if(AppState.instanceRef===undefined){AppState.instanceRef=newAppState();}returnAppState
-
设计模式(七):适配器模式
2023-12-28
64310 浏览
下图的Duck(鸭子)接口有两个方法,一个是quack(呱呱叫),一个是fly(飞)下面是一个火鸡的接口火鸡的具体实现这个图的意思是,之前上面鸭子和火鸡的案例中,适配器是TurkeyAdapter,目标接口是Duck,被适配接口是Turkey。为什么呢?因为适配器实现了目标接口,并持有被适配接口的实例。所以客户使用适配器的过程如下:(MallardDuck使用TurkeyAdapter的过程):客
-
设计模式(六):责任链设计模式
2023-12-28
65433 浏览
上图把
-
关注我们
扫一扫关注公众号
添加我为好友,拉您入交流群!
-