開心一笑
【我從上學(xué)以來到現(xiàn)在,一直有2個(gè)問題……
問題一:
為什么每次問爸媽要東西的時(shí)候,他們就會說:你還??;
可是每當(dāng)我們犯了錯(cuò)誤的時(shí)候,他們卻說:你都這么大了……
問題二:
為什么剛到某個(gè)學(xué)校老師會說:別害怕,把學(xué)校當(dāng)成你的家;
可一旦我們犯了錯(cuò),老師又說:這么放肆,你當(dāng)學(xué)校是你家啊…】
提出問題
項(xiàng)目中如何重構(gòu)對象???
解決問題

以下來自《重構(gòu)》這本書的幾點(diǎn)總結(jié)和自己的一點(diǎn)心得:
Move Method(搬移函數(shù))
“搬移函數(shù)”是重構(gòu)理論的支柱。如果一個(gè)類有太多行為,或如果一個(gè)類與另一個(gè)類有太多合作而形成高度耦合,就會搬移函數(shù)。
Move Field(搬移字段)
如果一個(gè)字段,在其所駐類之外的另一個(gè)類中有更多函數(shù)使用了它,就會考慮搬移這個(gè)字段。
Extract Class(提煉類)
某個(gè)類做了應(yīng)該由兩個(gè)類做的事,建立一個(gè)新類,將相關(guān)的字段和函數(shù)從舊類搬移到新類。
Inline Class(將類內(nèi)聯(lián)化)
某個(gè)類沒有做太多的事情,將這個(gè)類的所有特性搬移到另一個(gè)類中,然后移除原類。
Hide Delegate(隱藏“委托關(guān)系”)
客戶通過一個(gè)委托類調(diào)用另一個(gè)對象。在服務(wù)類上建立客戶所需的所有函數(shù),用以隱藏委托關(guān)系。
例一:
/**
* 金錢
*/
class Money{
public String getFlowers(){
return "999玫瑰";
}
}
/**
* 帥哥
*/
class Boy{
Money money;
public Money getMoney() {
return money;
}
public void setMoney(Money money) {
this.money = money;
}
}
/**
* 美女
*/
class Girl{
}
男孩想買花給女孩的話,需要這么調(diào)用:boy.getMone().getFlowers();
重構(gòu):
class Boy{
Money money;
public Money getMoney() {
return money;
}
public void setMoney(Money money) {
this.money = money;
}
//委托關(guān)系在這里,金錢是萬惡之源,要隱藏起來,啦啦啦
String getFlowers(){
return money.getFlower();
}
}
Remove Middle Man(移除中間人)
某個(gè)類做了過多的簡單委托動作。讓客戶直接調(diào)用受托類。
事實(shí)上,一個(gè)類承受太多的委托類,這時(shí)作者建議我們?nèi)コ虚g人,直接調(diào)用Money類。
Introduce Foreign Method(引入外加函數(shù))
你需要為提供服務(wù)的類增加一個(gè)函數(shù),但你無法修改這個(gè)類。在客戶端類建立一個(gè)函數(shù),并以第一參數(shù)形式傳入一個(gè)服務(wù)類實(shí)例。
Introduce Local Extension(引入本地?cái)U(kuò)展)
你需要為服務(wù)類提供一些額外函數(shù),但你無法修改這個(gè)類:建立一個(gè)新類,使他包含這些額外函數(shù)。讓這個(gè)擴(kuò)展品成為源類的子類或包裝類。
例二:
子類重構(gòu):
//男孩每天要做的事情很多,很累,他不希望別人再破壞他這些行為
//但是他又希望有人來幫助他,于是有了UtilsBoy
class Boy{
public String engagement(){
return "約會中";
}
public String sayLove(){
//女友要求中英文都要說一遍
return "我愛你(I Love You!)";
}
public String loveCall(){
//女友要求中英文都要說一遍
return "晚安(Good Night)";
}
//以下省略一萬個(gè)方法
}
//該類是男孩的子類,
class UtilsBoy extends Boy{
public UtilsBoy(){
//構(gòu)造方法需要委托給男孩
super();
}
public String getFlower(){
return "999玫瑰";
}
//在這個(gè)方法中,我們可以擴(kuò)展男孩所需的技能
//一下省略一萬個(gè)幫助男孩追女孩方法
}
//幸福的女孩,什么都不用做
class Girl{
}
**包裝重構(gòu):如何包裝重構(gòu)就不說了!??!
讀書感悟
來自《遇見未知的自己》
- 不管你有多愛他(她),多余的擔(dān)心是最差的禮物,不如給他(她)祝福!
- 什么樣的人最有魅力?我愈來愈覺得,答案就是,內(nèi)心有力量的人。什么叫做“有內(nèi)在力量”?就是遇到困難,碰上痛苦時(shí),能夠坦然與自己的負(fù)面情緒相處。困難大家都有,痛苦每個(gè)人也不缺,只要是人,這些都是不可避免的。但內(nèi)在力量強(qiáng)大的人可以不受苦。
- 所有發(fā)生在我們身上的事件都是一個(gè)經(jīng)過仔細(xì)包裝的禮物。只要我們愿意面對它有時(shí)候有點(diǎn)丑惡的包裝,帶著耐心和勇氣一點(diǎn)一點(diǎn)地拆開包裝的話,我們會驚喜地看到里面珍藏的禮物。
- 一旦那個(gè)令你快樂的事情不復(fù)存在,你的快樂也隨之消失。而喜悅不同,它是由內(nèi)向外的綻放,從內(nèi)心深處油然而生。
其他
如果有帶給你一絲絲小快樂,就讓快樂繼續(xù)傳遞下去,歡迎轉(zhuǎn)載,點(diǎn)贊,頂,歡迎留下寶貴的意見,多謝支持!