之前利用List<List>進行創建實例,主要存在的問題是要求各個類的屬性的個數必須一致。
爲了能夠可以不受這個限制,考慮用Map來存放XML中的配置信息
因爲要創建XML中配置的所有的對象,所以還是用List來儲存,不同的的是List<Map>,用map來儲存創建實例所需要的全部信息。每個map除了需要有創建實例所需要的屬性以外,還要有該類的全類名。這個全類名也從XML中獲取。
同樣,在各個類中也需要重新創建構造方法,接收一個Map<String,String>來創建實例對象。
有了這個構造方法後,BeanFactory類就可以接收一個Map<String,String>來創建Bean。
然後就可以得到在XML文件中所創建的所有對象的實例
梳理一下整個過程:
1.DocumentParse類,負責解析XML文件,得到一個List<Map>,Map<String,String>儲存要創建的對象的全類名,和屬性的賦值。
2.BeanFactory類,負責接收一個Map<String,String>,根據得到的內容創建Object
存在的問題:
雖然可以根據具體的類創建對象,但是依然要求每個類提供構造方法。