很多
Java初学者会问这样的问题:为什么要学设计模式,它的知识点那么多,分为
23
种类型是否太夸张了。事实上,设计模式不仅重要,而且必要,很多企业都会通过设计模式进行人才的筛选。接下来的郑州
Java
学习基础课程中,小编就给大家简单介绍一下设计模式以及相关的面试题。
为什么要学设计模式?
1
、设计模式是在软件工程实践过程中,程序员们总结出的良好的编程方法。使用设计模式能够增加系统的健壮性,易修改性和可扩展性,现在大多数框架都使用了很多设计模式。
2
、设计模式其实就是一种软件设计的整体思路,即软件架构、实现思路,一方面便于后期扩展,二方面便于研发。各种框架如
struts
、
ssh
、
spring mvc
其实就是设计模式。
看到这里,我们可以用一句话来概括设计:设计模式
=框架。目前框架在企业应用中的重要性已经广为人知,学好设计模式就意味着你学好了框架,求职时当然就更具优势!
设计模式常见面试题
1
、在
Java
中,什么叫观察者设计模式(
observer design pattern
)?
观察者模式是基于对象的状态变化和观察者的通讯,以便他们作出相应的操作。简单的例子就是一个天气系统,当天气变化时必须在展示给公众的视图中进行反映。这个视图对象是一个主体,而不同的视图是观察者。
2
、使用工厂模式最主要的好处是什么?在哪里使用?
工厂模式的最大好处是增加了创建对象时的封装层次。如果你使用工厂来创建对象,之后你可以使用更高级和更高性能的实现来替换原始的产品实现或类,这不需要在调用层做任何修改。
3
、举一个用
Java
实现的装饰模式
(decorator design pattern)
?它是作用于对象层次还是类层次?
装饰模式增加强了单个对象的能力。
Java IO到处都使用了装饰模式,典型例子就是
Buffered
系列类如
BufferedReader
和
BufferedWriter
,它们增强了
Reader
和
Writer
对象,以实现提升性能的
Buffer
层次的读取和写入。
4
、设计一个
ATM
机,请说出你的设计思路?
比如设计金融系统来说,必须知道它们应该在任何情况下都能够正常工作。不管是断电还是其他情况,
ATM 应该保持正确的状态(事务)
,
想想 加锁(
locking
)、事务(
transaction
)、错误条件(
error condition
)、边界条件(
boundary condition
) 等等。尽管你不能想到具体的设计,但如果你可以指出非功能性需求,提出一些问题,想到关于边界条件,这些都会是很好的。