圖解Java設計模式-面試題

守望精靈發表於2020-10-03

1.面試題

1)請使用UML類圖畫出原型模式核心角色

2)寫出深拷貝的兩種方式的原始碼(重寫clone方法實現深拷貝,使用序列化來實現深拷貝)

3)在Spring框架中哪裡使用到原型模型,並對原始碼進行分析

4)Spring中原型bean的建立,就是原型模式的應用

5) 程式碼分析+Debug原始碼

2.直譯器設計模式

1) 什麼是解析器設計模式

2) 畫出解析器設計模式的UML類圖,分析設計模式中的各個角色是什麼?

3)請說明Spring的框架中,哪裡使用到了直譯器設計模式,並做原始碼級別的分析

beans.xml
<bean id="id01" class="com.bean.Monster" scope="Prototype"></bean>

Test.java
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Object bean = applicationContext.getBean("id01")
System.out.println("bean" +bean)


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

#在doGetBean方法中有一個
else if(fmbd.isPrototype()){
	Object prorotype = null;
	tyr{
		beforePrototypeCreation (beanName);
		prorotypeInstance = createBean(beanName)
	}
	finally{
		afterPrototypeCreation(beanName)
	}
}

設計模式的重要性

  • 1)軟體工程中,設計模式是對軟體設計中普通存在(反覆出現)的各種問題,所提出的解決方案
  • 2)大廈 VS 簡易房
  • 3)拿實際工作經歷來說,當一個專案開發完後,如果客戶提出增新功能,怎麼辦?
  • 4)如果專案開發完後,原來程式設計師離職,你接手維護該專案怎麼辦?(維護性[可讀性,規範性])
  • 5) 目前程式設計師門檻越來越高,一線IT公司(大廠),都會問你實際專案中使用過什麼設計模式,怎樣使用的,解決了什麼問題?
  • 6)設計模式在軟體中哪裡?物件導向(oo) 功能模組[設計模式+演算法(資料結構)] => 框架[使用到多種設計模式]=》架構[伺服器叢集]
  • 7)如果想成為合格軟體工程師,就需要花時間來研究設計模式

 

相關文章