1. 程式人生 > >設計模式:6大設計原則(PHP版本)

設計模式:6大設計原則(PHP版本)

英文名稱 屬性信息 map 圖片 AC src pri 負責 模式

1.單一職責

單一職責原則的英文名稱是Single Responsibility Principle,簡稱是SRP,單一職責原則的定義是:應該有且僅有一個原因引起類的變更。

  技術分享圖片

樣例1:將用戶管理拆分為兩個接口,IUserBO負責用戶的屬性,簡單地說,IUserBO的職責就是收集和反饋用戶的屬性信息;IUserBiz負責用戶的行為,完成用戶信息的維護和變更

<?php
    /**
     *Business Object(業務對象),負責用戶收集和反饋用戶的屬性信息
     */
    interface IUserBo{
        function
setUserId(/* 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版本)