Re: [問題] setXXX
※ 引述《oishii (喔帥)》之銘言:
: ※ 引述《sioo (加油加油)》之銘言:
: : 請問一下,我發現在很多的API裡面,
: : 在建立物件時,都不直接使用建構子來建立物件,
: : 一些參數都要透過setXXX()的方法來給值,
: : 請問使用這種方法有什麼好處嗎?
: : 用建構子不是更方便嗎 謝謝...
: 應該是針對封裝性來做考量
: 一些instance variable在encapsulation的考量之下 應設為private
: 然後透過getXX()與setXXX()的method來做讀取與設定
: 利用這樣的方式可以避免一些錯誤的產生
: 比如說某一個instance variable必須為正數
: 在setter的方法內就可以做這樣的寫入限制
: 我也是初學者可能沒回答到你的問題
: 因為我搞不大懂constructor跟參數設定的關係為何
: 一般用new呼叫constructor產生一個instance之後應該就不會再呼叫建構子了
: 如果你的意思是說 建構子內用setter的方式來做設定
: 那裡由應該就是我上一段講的那樣
: 還請高手指教
不好意思,可能是我沒問清楚吧,譬如像google search的api
GoogleSearch search = new GoogleSearch();
search.setKey("000000000000000000000000");
search.setQueryString("Internet standards");
search.setSafeSearch(true);
GoogleSearchResult result = search.doSearch();
為什麼不乾脆寫一個建構子 GoogleSearch(key,query,isSafe)
這樣不是比較快嗎?為什麼還要用setXXX()的方法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.200.146
討論串 (同標題文章)