现在位置: 首页 > 面试题 > 设计模式面试题 > 文章
答:Spring 框架使用的设计模式如下。   代理模式:在 AOP 中有使用 单例模式:bean 默认是单例模式 模板方法模式:jdbcTemplate 工厂模式:BeanFactory 观察者模式:Spring 事件驱动模型就是观察者模式很经典的一个应用,比如,ContextStartedEvent 就是 ApplicationContext 启动后触发的事件 适配器模式:Spring MVC 中也是用到了适配器模式适配 Controller
阅读全文

Wopus问答

答:IO 使用了适配器模式和装饰器模式。   适配器模式:由于 InputStream 是字节流不能享受到字符流读取字符那么便捷的功能,借助 InputStreamReader 将其转为 Reader 子类,因而可以拥有便捷操作文本文件方法; 装饰器模式:将 InputStream 字节流包装为其他流的过程就是装饰器模式,比如,包装为 FileInputStream、ByteArrayInputStream、PipedInputStream 等。
阅读全文
答:JDK 常用的设计模式如下:   1)工厂模式 java.text.DateFormat 工具类,它用于格式化一个本地日期或者时间。   public final static DateFormat getDateInstance(); public final static DateFormat getDateInstance(int style); public final static DateFormat getDateInstance(int style,Locale locale);   加密类   KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede"); Cipher ciph...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 782字 暂无评论
答:适配器模式是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。   优点:   可以让两个没有关联的类一起运行,起着中间转换的作用; 灵活性好,不会破坏原有的系统。 缺点:过多地使用适配器,容易使代码结构混乱,如明明看到调用的是 A 接口,内部调用的却是 B 接口的实现。   以生活中的例子来说,比如有一个充电器是 MicroUSB 接口,而手机充...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 673字 暂无评论
答:策略模式是指定义一系列算法,将每个算法都封装起来,并且使他们之间可以相互替换。   优点:遵循了开闭原则,扩展性良好。   缺点:随着策略的增加,对外暴露越来越多。   以生活中的例子来说,比如我们要出去旅游,选择性很多,可以选择骑车、开车、坐飞机、坐火车等,就可以使用策略模式,把每种出行作为一种策略封装起来,后面增加了新的交通方式了,如超级高铁、火箭等,就可以不需要改动原有的类,新...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 695字 暂无评论
代理模式是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。   优点:   代理模式能够协调调用者和被调用者,在一定程度上降低了系统的耦合度; 可以灵活地隐藏被代理对象的部分功能和服务,也增加额外的功能和服务。 缺点:   由于使用了代理模式,因此程序的性能没有直接调用性能高; 使用代理模式提高了代码的复杂度。 举一个生活中的例子:比如买飞机票,由于离飞机场太远,直接去飞机场买票不...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 779字 暂无评论
答:模板方法模式是指定义一个模板结构,将具体内容延迟到子类去实现。   优点:   提高代码复用性:将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中; 实现了反向控制:通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制并且符合开闭原则。 以给冰箱中放水果为例,比如,我要放一个香蕉:开冰箱门 → 放香蕉 → 关冰箱门;如果我再要放一个苹果:开冰箱门 → 放苹...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 982字 暂无评论
答:装饰器模式是指动态地给一个对象增加一些额外的功能,同时又不改变其结构。   优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。   装饰器模式的关键:装饰器中使用了被装饰的对象。   比如,创建一个对象“laowang”,给对象添加不同的装饰,穿上夹克、戴上帽子......,这个执行过程就是装饰者模式,实现代码如下。   1)定义...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 1976字 暂无评论
观察者模式是定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 优点:   观察者模式可以实现表示层和数据逻辑层的分离,并定义了稳定的消息更新传递机制,抽象了更新接口,使得可以有各种各样不同的表示层作为...
阅读全文
2022年01月03日 设计模式面试题 ⁄ 共 964字 暂无评论
答:抽象工厂模式是在简单工厂的基础上将未来可能需要修改的代码抽象出来,通过继承的方式让子类去做决定。   比如,以上面的咖啡工厂为例,某天我的口味突然变了,不想喝咖啡了想喝啤酒,这个时候如果直接修改简单工厂里面的代码,这种做法不但不够优雅,也不符合软件设计的“开闭原则”,因为每次新增品类都要修改原来的代码。这个时候就可以使用抽象工厂类了,抽象工厂里只声明方法,具体的实现交给子类(子工厂)去实现...
阅读全文
×