筆記
telescoping constructor
在創(chuàng)建構(gòu)造函數(shù)的時候祥得,采取以下策略:第一個構(gòu)造函數(shù)使用必選的參數(shù),第二個增加一個可選參數(shù)蒋得,第三個增加兩個可選參數(shù)级及,以此類推。
缺點:類擁有過多構(gòu)造函數(shù)额衙。構(gòu)造函數(shù)的參數(shù)繁多饮焦,使用的時候如果相鄰的兩個參數(shù)的類型相同,很容易出錯窍侧。JavaBeans Pattern
構(gòu)造參數(shù)不使用參數(shù)或者只使用必選參數(shù)县踢。其他的參數(shù)通過set方法設置。
缺點:對象可能還沒初始化完就被其他線程使用了伟件。有不一致的風險殿雪。The Builder pattern
每個對象附帶一個Builder類。先將參數(shù)設置到Builder類對象中锋爪,最后調(diào)用build()方法構(gòu)建目標對象丙曙。
缺點:需要新增一個Builder類。如果構(gòu)造函數(shù)的參數(shù)不多其骄,用Builder Pattern略顯繁瑣亏镰。
理解與思考
-
這一節(jié)主要是關于如何處理多參數(shù)構(gòu)造函數(shù)的問題≌可選的方案有:
- telescoping constructor
- JavaBeans Pattern
- The Builder pattern
三類方法索抓,各有優(yōu)缺點。應具體情況具體分析毯炮,采用適合的方法逼肯。