<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                * 今天開始設計模式之旅。設計模式是一些有經驗的前輩所總結出來的開發軟件的經驗。 * 設計模式包括6大設計原則和23種設計模式,隨著軟件開發的深入,后來又有了一些新的設計模式出現。 * 我目前還沒有太多的開發經驗,但是這也不妨礙我對設計模式的理解和學習,因為在基本了解一下設計模式之后 * 我在遇到開發難題時,就可以借鑒這些設計模式來熟練應用到場景中。 * 學習設計模式借鑒的書籍《設計模式之禪》。這本書對設計模式講解的很透徹,對于初學者有很大的好處, * 然后我的目標是,每天至少學習一片設計模式,并用代碼實現,注釋講解清晰,寫成博客。 * 同時還要借鑒博客中對設計模式有深刻理解的博文進行在學習。 第一大設計原則: ## 單一職責原則(Single Responsibility Principle) **定義:應該有且僅有一個原因引起類的變更。** 我的理解:盡可能的將對象劃分成單一性的類別,使類的復雜性降低,實現什么職責都有清晰明確的定義 ------------給出一個例子。 在設計中用戶 管理、修改用戶的信息、增加機構、增加角色等。 按照用戶的業務對象和業務邏輯來進行類和接口的劃分。 ![](https://box.kancloud.cn/2016-06-06_5755340650484.jpg) UserBiz.java ~~~ package hpu.lzl.srp; /** * UserBiz(業務邏輯 Business Logic) * 將IUserInfo中的屬于業務邏輯的類抽象成獨立的接口。 */ public interface IUserBiz{ //這個是業務邏輯的方法 boolean changePassword(String oldPassword); boolean deleteUser(); void mapUser(); boolean addOrg(int orgID); boolean addRole(int roleID); } ~~~ IUserBO.java ~~~ package hpu.lzl.srp; /* * 用戶的Business Object(業務對象). * 將IUserInfo中的屬于業務對象的一些方法抽象出來,形成獨立的接口。 */ public interface IUserBO{ void serUserID(String userID); String getUserID(); void setPassword(String password); String getPassword(); void setUserName(String name); String getUserName(); } ~~~ IUserInfo.java ~~~ package hpu.lzl.srp; /** * 這里是用戶的所用信息以及操作的接口。 * 它繼承自IUserBO和IUserBiz。 * 以便于用擁有所有的邏輯操作。 * @author admin * */ public interface IUserInfo extends IUserBO,IUserBiz{ } ~~~ UserInfo.java ~~~ package hpu.lzl.srp; public class UserInfo implements IUserInfo{ private String userID; private String password; private String userName; @Override public void serUserID(String userID) { // TODO Auto-generated method stub this.userID = userID; } @Override public String getUserID() { // TODO Auto-generated method stub return userID; } @Override public void setPassword(String password) { // TODO Auto-generated method stub this.password = password; } @Override public String getPassword() { // TODO Auto-generated method stub return password; } @Override public void setUserName(String name) { // TODO Auto-generated method stub this.userName = name; } @Override public String getUserName() { // TODO Auto-generated method stub return userName; } @Override public boolean changePassword(String oldPassword) { System.out.println("改變密碼,"+oldPassword); return false; } @Override public boolean deleteUser() { System.out.println("刪除密碼,"+false); return false; } @Override public void mapUser() { // TODO Auto-generated method stub System.out.println("用戶map"); } @Override public boolean addOrg(int orgID) { System.out.println("添加機構"+orgID); return false; } @Override public boolean addRole(int roleID) { System.out.println("添加角色,"+roleID);// TODO Auto-generated method stub return false; } } ~~~ UserTest.java ~~~ public class UserTest{ public static void main(String[] args) { IUserInfo userInfo = new UserInfo(); //我要是為用戶賦值,那么他是一個純粹的BO IUserBO userBO = (IUserBO)userInfo; userBO.setPassword("hhh"); //我如果要執行動作,你們他是一個業務邏輯類 IUserBiz userBiz = (IUserBiz) userInfo; userBiz.addOrg(123); } } ~~~ 我理解的單一職責原則就是,在開發過程中設計類或接口時,盡量要將這些類和接口的職責唯一、明確。這樣在進行合作開發時,不僅自己能夠快速明確自己的目的,其他合作開發的程序員也能夠明白你的意思。這樣同樣也可以降低代碼的耦合性,有利于后期代碼的維護。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看