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