一、單一職責(zé)原則(SRP)
單一職責(zé)原則是設(shè)計(jì)模式中最基本的原則之一,要求每個(gè)類只有一個(gè)職責(zé),即完成一個(gè)任務(wù),而不是多個(gè)任務(wù)。在實(shí)現(xiàn)單一職責(zé)時(shí),需要將類的接口簡潔明了,同時(shí)保證接口的不可修改性。
例如,一個(gè)名為“Book”的類可能有多個(gè)職責(zé),如封面、作者、出版日期等。如果這些職責(zé)都放在一起,那么接口就變得非常復(fù)雜,且容易受到修改的影響。因此,可以將這些職責(zé)分別封裝在不同的類中,每個(gè)類只負(fù)責(zé)完成一個(gè)職責(zé),這樣可以提高代碼的可讀性和可維護(hù)性。
二、封裝性原則(OCP)
封裝性原則是指將數(shù)據(jù)和業(yè)務(wù)邏輯封裝在對(duì)象中,使得修改對(duì)象本身而不是對(duì)象所調(diào)用的接口變得困難。封裝性原則可以提高代碼的可維護(hù)性和可擴(kuò)展性,同時(shí)也可以保護(hù)代碼不受外界的污染。
例如,如果某個(gè)對(duì)象需要修改其內(nèi)部數(shù)據(jù),那么就需要對(duì)該對(duì)象進(jìn)行封裝,使得外部無法直接修改對(duì)象的數(shù)據(jù)。這樣,當(dāng)需要修改對(duì)象時(shí),只需要修改對(duì)象本身而不是對(duì)象所調(diào)用的接口,從而提高了代碼的可維護(hù)性。
三、可重用性原則(OCP)
可重用性原則是指將相似的業(yè)務(wù)邏輯封裝在不同的對(duì)象中,使得不同的對(duì)象可以重用相同的業(yè)務(wù)邏輯,從而提高代碼的可重用性和可維護(hù)性。
例如,如果某個(gè)對(duì)象需要計(jì)算兩個(gè)數(shù)的和,那么可以將這個(gè)業(yè)務(wù)邏輯封裝在另一個(gè)對(duì)象中,使得不同的對(duì)象可以重用相同的計(jì)算邏輯。這樣,當(dāng)需要計(jì)算兩個(gè)數(shù)的和時(shí),只需要調(diào)用計(jì)算邏輯所在的對(duì)象,從而提高了代碼的可重用性。
四、接口隔離原則(ISP)
接口隔離原則是指將實(shí)現(xiàn)接口的代碼隔離在不同的類中,使得實(shí)現(xiàn)接口的代碼與其他類的行為分離,從而避免接口被修改或破壞。
例如,如果某個(gè)類需要修改另一個(gè)類的行為,那么就需要將實(shí)現(xiàn)接口的代碼隔離在不同的類中。這樣,當(dāng)需要修改實(shí)現(xiàn)接口的代碼時(shí),只需要修改實(shí)現(xiàn)接口的代碼,而不是整個(gè)另一個(gè)類。