設計模式:6大設計原則(PHP版本)
阿新 • • 發佈:2018-03-02
英文名稱 屬性信息 map 圖片 AC src pri 負責 模式
1.單一職責
單一職責原則的英文名稱是Single Responsibility Principle,簡稱是SRP,單一職責原則的定義是:應該有且僅有一個原因引起類的變更。
樣例1:將用戶管理拆分為兩個接口,IUserBO負責用戶的屬性,簡單地說,IUserBO的職責就是收集和反饋用戶的屬性信息;IUserBiz負責用戶的行為,完成用戶信息的維護和變更
<?php /** *Business Object(業務對象),負責用戶收集和反饋用戶的屬性信息 */ interface IUserBo{ functionsetUserId(/* String */ $userId); function getUserId(); function setPassword(/* String */ $password); function setUserName(/* String */ $userName); function getUserName(); } /** *Business Logic(業務邏輯),負責用戶的行為,完成用戶信息的維護和變更 */ interface IUserBiz{function changePassword(/* String */ $userId, /* String */ $password); function deleteUser(/* IUserBo */ $userBo); function mapUser(/* IUserBo */ $userBo); function addOrg(/* IUserBo */ $userBo, /* String */$orgId); function addRole(/* IUserBo */ $userBo, /* String */$roleId); }/** *Business Logic (業務邏輯),負責處理用戶的行為 */ interface IUserInfo extends IUserBo, IUserBiz{ } class UserInfo implements IUserInfo(){ }
樣例2:
/** *Business Object(業務對象),負責用戶收集和反饋用戶的屬性信息 */ interface IUserBo{ function setUserId(/* String */ $userId); function getUserId(); function setPassword(/* String */ $password); function setUserName(/* String */ $userName); function getUserName(); } /** *Business Logic(業務邏輯),負責用戶的行為,完成用戶信息的維護和變更 */ interface IUserBiz extends IUserBo{ function changePassword(/* String */ $userId, /* String */ $password); function deleteUser(/* IUserBo */ $userBo); function mapUser(/* IUserBo */ $userBo); function addOrg(/* IUserBo */ $userBo, /* String */$orgId); function addRole(/* IUserBo */ $userBo, /* String */$roleId); } class UserBo implements IUserBo { } class IUserBiz implements IUserBiz{ }
設計模式:6大設計原則(PHP版本)