2022
02-10
02-10
Java面试题冲刺第十五天--设计模式
目录面试题1:面向对象程序设计(OOP)的六大原则分别有哪几个面试题2:你说一下什么是设计模式追问1:那你怎么理解高内聚和低耦合?面试题3:设计模式有哪几种?追问1:你比较熟悉哪种设计模式?说说原理。追问2:那你说说适配器模式的原理吧适配器模式优缺点总结面试题1:面向对象程序设计(OOP)的六大原则分别有哪几个开闭原则(OpenClosePrinciple)及“开放-封闭原则”单一职责原则(SingleResponsibilityPrinciple)里氏替...
继续阅读 >
目录一、模拟业务需求二、小步小跑的迭代开发三、系统对数据的校验要求四、新建一个抽象类五、子类的实现六、构建责任链和调用七、可维护性八、总结8.1、责任链模式8.2、责任链模式适用的场景一、模拟业务需求假设我们现在需要在我们的系统中导入一批关于学生信息的Excel的数据,其主要的信息有:学号、姓名、年龄、性别等等,在导入系统的时候,我们肯定不能直接的保存到数据库,我们肯定是先要对这个Excel的数据进行校验,看是否...
目录一、什么是里氏替换原则1.1、里氏替换原则定义1.2、里氏替换原则有至少有两种含义二、使用里氏替换原则的目的三、里氏替换原则与继承多态之间的关系四、里式替换的规则4.1、子类方法不能违背父类方法对输入输出异常的约定4.2、子类方法不能违背父类方法定义的功能4.3、子类必须完全实现父类的抽象方法五、里氏替换原则的作用六、里氏替换原则的实现方法七、案例分析7.1、案例一:两数相减7.2、案例二:"几维鸟不是鸟"八、总结...
目录一、什么是模板方法设计模式1.1、模板方法的用途1.2、模板方法的定义二、定义模板方法的步骤2.1、定义模板类2.2、定义具体子类2.3、定义客户端调用2.4下抽象类和子类之间的UML图和源码实现三、案例3.1、案例1:一日规划3.2、案例2:钩子方法四、模板方法的优缺点4.1、优点4.2、缺点五、使用场景六、对设计模式六大原则的应用思考一、什么是模板方法设计模式从字面意义上理解,模板方法就是定义出来一套方法,作为模板,也就...
目录一、组合模式(CompositePattern)1.1、简述1.2、Go实现二、适配器模式(AdapterPattern)2.1、简述2.2、Go实现三、桥接模式(BridgePattern)3.1、简述3.2、Go实现四、总结一、组合模式(CompositePattern)1.1、简述在面向对象编程中,有两个常见的对象设计方法,组合和继承,两者都可以解决代码复用的问题,但是使用后者时容易出现继承层次过深,对象关系过于复杂的副作用,从而导致代码的可维护性变差。因此,一个经典...
目录一、前言二、适配器模式介绍三、案例场景模拟3.1、场景模拟工程3.2、场景简述3.2.1、注册开户MQ3.2.2、内部订单MQ3.2.3、第三方订单MQ3.2.4、查询用户内部下单数量接口3.2.5、查询用户第三方下单首单接口四、代码实现4.1、工程结构4.2、Mq接收消息实现五、适配器模式重构代码5.1、工程结构5.2、代码实现(MQ消息适配)5.2.1、统一的MQ消息体5.2.2、MQ消息体适配类5.2.3、测试适配类5.3、代码实现(接口使用适配)5.3.1、定义统一适...
目录一、前言二、开发环境三、抽象工厂模式介绍四、案例场景模拟4.1、场景模拟工程4.2、场景简述4.2.1、模拟单机服务RedisUtils4.2.2、模拟集群EGM4.2.3、模拟集群IIR4.3、单集群代码使用4.3.1、定义使用接口4.3.2、实现调用代码五、代码实现5.1、工程结构5.2、ifelse实现需求5.3、测试验证六、抽象工厂模式重构代码6.1、工程结构6.2、代码实现6.2.1、定义适配接口6.2.2、实现集群使用服务6.2.3、定义抽象工程代理类和实现6.3、...
目录一、前言二、开发环境三、建造者模式介绍四、案例场景模拟4.1、场景模拟工程4.2、场景简述4.2.1、物料接口4.2.2、吊顶(ceiling)4.2.3、涂料(coat)4.2.4、地板(floor)4.2.5、地砖(tile)五、代码实现5.1、工程结构5.2、ifelse实现需求5.3、测试验证六、建造者模式重构代码6.1、工程结构6.2、代码实现6.2.1、定义装修包接口6.2.2、装修包实现6.2.3、建造者方法6.3、测试验证七、总结一、前言无论承接什么样的需求,是不是身边总...
目录一、概述二、模式定义三、模式结构四、模式实现五、模式优缺点5.1、优点5.2、缺点六、模式适用场景七、模式总结一、概述我们对于这个图片肯定会非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。我们可以将这颗树理解成一个大的容器,容器里面包含很多的成员...