與繼承相關的一些重構(二)

2022-02-07 01:07:00 字數 1561 閱讀 2904

5.提取主類:提取乙個基類,抽象出共有方法,比較常用的重構,這裡的基類也許並不存在,需要自己新建立。

用法場景:當有乙個類中的某個方法需要經常被其他的類呼叫的時候,說明這個方法重用率很高,可以考慮把它抽象出來,放到乙個基類中。

**

//

重構前public

class

dogpublic

void

groom()}//

重構後public

class

animal

public

void

groom()

}public

class

dog : animal

6.提取子類:將基類中的方法放到子類中,這裡的子類也許並不存在,需要自己新建立。

用法場景:當基類中的某些方法並不是面向所有或者大多數類的時候,需要把這些方法下放到子類中。

**

//

重構前public

class

registration

public

decimal

registrationtotal

public

string

notes

public

string

description

public

datetime registrationdate }//

重構後public

class

registration

public

string

description

public

datetime registrationdate

}public

class

nonregistration : registration

public

string

notes

}

7.合併繼承:把子類合併到基類中去。

用法場景:當子類只有屬性定義,並且這些屬性可以放置在基類中,那這個子類就是多餘的,在把屬性和基類合併後就可以移除了。

**

//重構前

public

class

website

public

string

description

public

ienumerable

<

webpage

>

pages

}public

class

studentwebsite : website}//

重構後public

class

website

public

string

description

public

ienumerable

<

webpage

>

pages

public

bool

isactive

}

重構的一些經驗

當我們已經對設計模式倒背如流時,卻往往發現在實際 編寫中有生搬硬套的感覺。設計模式是前人經驗的總結,直接拿來用合不合適呢?這讓我想起了大學一位老師告訴我們的一條學習的道路 知識,理論,智慧型 設計模式是很一種優雅的 智慧型 但對於我們初學者來說還僅僅是留存於文字的 知識 把 知識 融合到自己的開發中...

與類相關的一些指標

測試 include using namespace std class myclass int axbxc void show cout a is int main int myclass pp myclass cl myclass p int p1 pp myclass axbxc p cl p...

一些與iphone相關的尺寸

截止到目前,iphone已出很多系列,目前市場上主流的iphone4 4s,iphone5 5s 5c,iphone 6 6 plus,iphone 6s 6s plus,針對公司iphone專案,需要完成對上述手機的適配,所以必須得了解這些手機的尺寸和解析度,以及專案中所需要的尺寸,目前做了乙個簡...