-
设计模式篇——原型模式(如何优雅地拷贝对象)
2023-12-29
67544 浏览
生活场景:招商信用卡给客户发送电子邮件现在好多人都会使用信用卡,而信用卡中心会每月向用户发送账单或者其他广告或者活动。比如现在招商信用卡中心要向10个客户发送一条抽奖活动的邮件,这10个人接收到的邮件的内容肯定是一样的,不一样的地方就是客户的一些基本信息展示。因此,我们可以使用一个通用的模板,然后把客户的信息放到模板中生成一份完整的电子邮件。根据分析,我们设计如下类图:代码清单如下。模板类:邮件类
-
微服务架构及其最重要的 10 个设计模式
2024-01-02
63807 浏览
软件设计模式是解决软件设计中常见问题的通用、可复用的解决方案。设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子。现在,我将介绍一系列设计模式来实现这些最佳实践。微服务架构的设计模式独享数据库(DatabaseperMicroservice)当一家公司将大型单体系统替换成一组微服务,首先要面临的最重要决策是关于数据库。单体架构会使用大型中央数据库。即使转移到微服务架构许多架构师仍
-
经典的23种设计模式基本介绍
2023-12-26
68446 浏览
经典设计模式大方向分为三大类,创建型模式、结构型模式、行为型模式。创建型模式里面包含5个,结构型模式包含7个,行为型模式包含11个。创建型模式[CreationalPattern]单例模式抽象工厂模式工厂方法模式建造者模式原型模式结构型模式[StructuralPattern]适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式行为型模式[BehavioralPattern]策略模式模板方
-
模板方法设计模式:
2023-12-31
66648 浏览
模板方法设计模式:解决的问题:当功能内部一部分实现时确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。abstractclassGetTime{publicfinalvoidgetTime(){//此功能如果不需要复写,可加final限定longstart=System.currentTimeMillis();code();//不确定的功能部分,提取出来,通过抽象方法实现l
-
JavaScript 常用设计模式
2023-12-26
67493 浏览
单例模式classAppState{counter=0;privatestaticinstanceRef:AppState;privateconstructor(){}staticgetInstance():AppState{if(AppState.instanceRef===undefined){AppState.instanceRef=newAppState();}returnAppState
-
如何巧用设计模式,干掉if-else
2023-12-30
69181 浏览
前言物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态)。这里枚举几种回执类型:MT1101、MT2101、MT4101、MT8104、MT8105、MT9999,系统在收到不同的回执报文后,会执行对应的业务逻辑处理。当然,实际业务场景并没有那么笼统,这里以回执处理为演示案例模拟一个回执类@Dat
-
设计模式(四):装饰器模式
2023-12-28
64851 浏览
装饰器模式装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。介绍意图:动态地给一个对象添加一些
-
设计模式(二):工厂模式
2023-12-28
66007 浏览
工厂模式工厂模式(FactoryPattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用
-
设计模式(三):抽象工厂模式
2023-12-28
63610 浏览
抽象工厂模式抽象工厂模式(AbstractFactoryPattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要
-
设计模式篇——中介者模式(优化多对象依赖的必备利器)
2023-12-29
63970 浏览
场景:多部门相互依赖,协同工作相信大家都去超市买过东西,非常方便,而且超市货架上的货源不会断货,为了保证这一点,超市一定有自己的一个仓库,以便随时补货。既然有了仓库,就要有专门的人员从外面采购物品来存到仓库,针对这个场景,我们抽取出三个角色部门:销售部门、仓库苦闷、采购部门。这三个部门之间是相互依赖的。采购部门要根据销售部门的销售情况确定是否采购,也需要根据仓库的库存量决定是否采购,而销售部门只有