情況:
多個類中存在一些相同屬性,將其抽取出來
與繼承區別?
繼承:
繼承實在編譯時刻靜態定義的,較方便復用。但繼承對子類暴露了其父類的實現細節,破壞了封裝性;子類與父類有著較強的依賴關係,最終限制了復用
組合:
組合是通過獲得對其他物件的引用而在執行時刻動態定義的。基於介面進行開發,所以實現上依賴性小
設計模式第二原則:
少用繼承,多用組合
關係圖:
具體實現
1、實體
contact:
/**
* 共有的****值類
* @author gxq
* */
public class contact
public void setemail(string email)
public string getaddress()
public void setaddress(string address)
public string getzipcode()
public void setzipcode(string zipcode)
public string getcontacttel()
public void setcontacttel(string contacttel)
}user:
/**
* 定義使用者實體
* @author gxq
* */
public class user
public void setusercontact(contact usercontact)
public int getid()
public void setid(int id)
public string getname()
public void setname(string name)
}employee:
/**
* 定以員工實體
* @author gxq
* */
public class employee
public void setemployeecontact(contact employeecontact)
public int getid()
public void setid(int id)
public string getname()
public void setname(string name)
}
2、對映檔案
user:
employee:
3、配置檔案
com.mysql.jdbc.driver
07 元件對映
假設我們有乙個person實體類,該實體類有id,name,位址資訊 province,city,street 等 而其他的一些類中也會有位址資訊,比如student實體類 customer實體類,這時我們可以把位址資訊單獨抽象出來封裝到乙個address類中,在把address物件作為其他實體類的...
Hibernate(七) 繼承對映
通過前面幾篇文章,介紹了關聯對映的一些概念。在實際應用中,關聯對映用到的最多。除此之外,還會較多的用到本文講到的繼承對映。實現繼承對映,主要有三種策略 單錶繼承 具體表繼承和類表繼承。單錶繼承 每棵繼承樹使用乙個表 具體表繼承 每乙個類分別使用乙個表 類表繼承 每個具體類分別使用乙個表。看下圖整合結...
Vue學習筆記 七 元件
在正式開始講解元件之前,我們先來看乙個簡單的例子 下面我們詳細解讀一下上面這份 vue.component button counter template times 我們首先通過全域性方法vue.component 建立了乙個名為 button counter 的全域性元件 該方法的第乙個引數是元...