欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式中的面试题

程序员文章站 2024-03-17 17:32:46
...

设计模式面试题

java设计模式内容介绍

原型设计模式问题:

  • 有请使用UML类图画出原型模式核心角色。

  • 原型设计模式的深拷贝和浅拷贝事什么,并写出深拷贝的两种方式的源码(重写clone方法实现深度拷贝,使用序列化来实现深拷贝)

  • 在Spring框架中哪里使用到原型模式,并对源码进行分析beans.xml

Java设计模式内容介绍

  • Spring中原型bean的创建,就是原型模式的应用
  • 代码分析+Debug源码

beans.xml

Test.java

ApplicationContext applicationContext = new 
    ClassPachXmlApplicationContext("beans.xml") 
//获取monster[通过id获取monster]
    Object bean = applicationContext.getBean("id01")
    System.out.println("bean"+bean);

@Override
public Object getBean(String name) throws BeansException{
    return doGet(name,null,null,false);
}

设计模式的七大原则:

  • 七大设计原则核心思想
  • 能够以类图说明设计原则
  • 在项目开发中,你在哪里使用到了OCP原则

设计模式常用的七大原则有:

  • 单一职责原则
  • 接口隔离原则
  • 依赖倒转原则
  • 里氏替换原则
  • 开闭原则OCP
  • 迪米特法则
  • 合成复用原则

金融借贷平台项目:

​ 接待平台的订单,有审核-发布-抢单 等等步骤,随着操作的不同,会改变订单的状态,项目中的这个模块实现就会使用到状态模式,请你使用状态模式进行设计,并完成实际代码。

问题分析:

​ 这类代码难以应对变化,在添加一种状态时,我们需要手动添加if/else,在添加一种功能时,要对所有的状态进行判断。因此代码会变得越来越臃肿,并且一单没有处理某个状态,便会发生及其严重的BUG,难以维护

解释器设置模式:

  • 介绍解释器设计模式是什么?

    • Spring框架中SpelExpressionPaser就使用到解释器模式
    • 代码分析+Debug源码+模式分析说明
  • 画出解释器设计模式的UML类图分析设计模式中的各个角色是什么?
    设计模式中的面试题

/** 
 * 声明一个抽象的解释操作 
 */
public interface Interpreter { 
    
  public void interpret(Context context); //实际中,可以有个返回的类型,定义解释出的数据对象 
} 
 
public class XmlSaxInterpreter implements Interpreter { 
  
  @Override
  public void interpret(Context context) { 
    System.out.println("xml sax Interpreter:" + context.getData()); 
  } 
  
} 
 
public class XmlDomInterpreter implements Interpreter { 
  
  @Override
  public void interpret(Context context) { 
    System.out.println("xml dom Interpreter:" + context.getData()); 
  } 
  
} 
 
/** 
 * 包含解释器之外的一些信息 
 */
public class Context { 
  private String data; 
    
  public String getData() { 
    return data; 
  } 
    
  public void setData(String data) { 
    this.data = data; 
  } 
} 
 
public class Test { 
  public static void main(String[] args) { 
    Context context = new Context(); 
    context.setData("一段xml数据"); 
    new XmlSaxInterpreter().interpret(context); 
    new XmlDomInterpreter().interpret(context); 
  } 
} 

单列设计模式一共有几种实现方式

单列设计模式一共有8种写法:

  • 饿汉式 两种
  • 懒汉式 三种
  • 双重检查
  • 静态内部类
  • 枚举
相关标签: 编程设计模式