• Java描述设计模式(24):备忘录模式
    一、生活场景1、场景描述常见的视频播放软件都具备这样一个功能:假设在播放视频西游记,如果这时候切换播放视频红楼梦,当再次切回播放西游记时,视频会从上次切走的时间点继续播放。下面基于备忘录设计模式来描述该场景流程。2、场景图解3、代码实现public class C01_InScene {    public static void main(String[] args) {        Record record = new Record() ;        Player player = new Pl...
  • Java描述设计模式(23):访问者模式
    利用电子设备作为运动器械进行的、人与人之间的智力对抗运动。下面基于访问者模式来描述该场景。2、场景图解3、代码实现publicclassC01_InScene{publicstaticvoidmain{DataSetdataSet=newDataSet();dataSet.addCrowd;dataSet.addCrowd;CrowdViewcrowdView=newAgainst();dataSet.display;crowdView=newApprove();dataSet.display;}}/***双分派,不同人群管理*/abstractclassCrowd{abstractvoidaccept;}classYouthextendsCrowd{@Overridepublicvoidaccept{view.getYouthView;}}classMiddleAgeextendsCrowd{@Overridepublicvoidaccept{view.getMiddleAgeView;}}/***不同人群观念的管理*/abstractclassCrowdView{//青年人观念abstractvoidgetYouthView;//中年人观念abstractvoidgetMiddleAgeView;}classApproveextendsCrowdView{@OverridepublicvoidgetYouthView{System.out.println;}@OverridepublicvoidgetMiddleAgeView{System.out.println;}}classAgainstextendsCrowdView{@OverridepublicvoidgetYouthView{System.out.println;}@OverridepublicvoidgetMiddleAgeView{System.out.println;}}/***提供一个数据集合*/classDataSet{privateList<Crowd>crowdList=newArrayList<>();publicvoidaddCrowd{crowdList.add;}publicvoiddisplay{for{crowd.accept;}}}二、访问者模式1、基础概念访问者模式是对象的行为模式,把作用于数据结构的各元素的操作封装,操作之间没有关联。结构对象角色能枚举结构中的所有元素,可以提供一个高层的接口,用来允许访问者对象访问每一个元素。
  • Java描述设计模式(22):策略模式
    一、生活场景每年双十一,各大电商平台会推出不同的满减策略,当用户的消费金额满一定额度后,会进行减去一定的优惠额度,从而来一波清仓甩卖,使用策略模式来描述该流程。public class C01_InScene {    public static void main(String[] args) {        // 选择满减策略,走相应的计算方式        FullReduce strategy = new Full100 ();        Payment price = new Payment...
  • Java描述设计模式(21):状态模式
    下面基于状态模式对该变化过程进行描述。2、代码实现publicclassC01_InScene{publicstaticvoidmain{Chameleonchameleon=newChameleon;LifeContextlifeContext=newLifeContext();//树叶环境BodyColorbodyColor=newGreenColor();lifeContext.setBodyColor;lifeContext.change;//树枝环境bodyColor=newGrayColor();lifeContext.setBodyColor;lifeContext.change;}}/***变色龙*/classChameleon{publicStringcolor;publicStringcontextDesc;publicChameleon{this.color=color;this.contextDesc=contextDesc;}}/***变色龙生存环境*/classLifeContext{privateBodyColorbodyColor;publicvoidsetBodyColor{this.bodyColor=bodyColor;}publicvoidchange{bodyColor.change;}}/***变色龙身体颜色抽象类*/interfaceBodyColor{voidchange;}/***变色龙身体颜色具体类*/classGreenColorimplementsBodyColor{@Overridepublicvoidchange{System.out.println;chameleon.contextDesc="树叶环境";chameleon.color="绿色";System.out.println;}}classGrayColorimplementsBodyColor{@Overridepublicvoidchange{System.out.println;chameleon.contextDesc="树枝环境";chameleon.color="灰色";System.out.println;}}二、状态模式1、基础概念状态模式是对象的行为模式,状态模式允许一个对象在其内部状态改变的时候改变其行为。状态模式把对象的行为封装在不同状态的对象中,每一个状态对象都是抽象状态类的子类。意图是让一个对象在其内部状态改变的时候,其行为也随之改变。符合“开闭原则”,
  • Java描述设计模式(19):模板方法模式
    一、生活场景通常一款互联网应用的开发流程如下:业务需求,规划产品,程序开发,测试交付。现在基于模板方法模式进行该过程描述。public class C01_InScene {    public static void main(String[] args) {        DevelopApp developApp = new DevelopApp() ;        developApp.templateMethod() ;    }}/** * 软件开发抽象类 */abstract class S...
  • 微服务架构案例(06):通过业务、应用、技术、存储方面,聊聊架构
    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理05:SpringCloud 基础组件应用设计06:通过业务、应用、存储、技术等,聊聊架构一、架构的概念架构分类可细化的分为业务架构、应用架构、技术选型、代码规划、部署环境架构等。根据用户需求,设计合理的业务架构,做出相应的应用架构流程,最后落地实施,完成项目。
  • 微服务架构案例(05):SpringCloud 基础组件应用设计
    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理05:SpringCloud 基础组件应用设计一、组件应用规划1、注册中心Eureka 组件是 Netflix 开发的,用于定位服务,基于RESTFul方式实现服务注册与发现。在Eureka注册的服务中,可以使用Feign接口的形式来进行相关服务间的请求调用,并提供超时回退,快速熔断的相关特性。
  • 微服务架构案例(04):中间件集成,公共服务封装
    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理一、中间件简介中间件是基础软件的一类, 属于复用性极高的软件。是一种独立的系统软件,也可以是公共的服务程序,分布式架构系统借助中间件,可以在不同的技术之间共享资源,或者不同的服务直接传递信息。该案例的中间件和公共服务,都是基于Feign接口统一的方式提供服务。
个人资料

人生如果不能躺赢,那就走两步。