<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 適配器模式的定義 > 將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 **適配器模式的本質是:** 轉換匹配,復用功能 ## 結構圖 ![適配器模式的樣例結構圖](https://img.kancloud.cn/55/9b/559bef18078c50142091a2219a8e14b5_837x368.png) ![適配器模式調用順序示意圖](https://img.kancloud.cn/5f/f3/5ff3c8475d67282039d5ff8e41884171_787x373.png) 這里主要介紹兩種適配器的實現方式(類適配器&對象適配器) 首先,我們先創建一個BaseService及其實現: ``` package com.mk.designDemo.designs.adapter; public interface BaseService { void doExecute(String param); } package com.mk.designDemo.designs.adapter.impl; import com.mk.designDemo.designs.adapter.BaseService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class BaseServiceImpl implements BaseService { private final static Logger logger = LoggerFactory.getLogger(BaseServiceImpl.class); @Override public void doExecute(String param) { logger.info("BaseService doExecute param:{}", param); // 復雜的實現邏輯 } } ``` 然后我們現在要做一個新的service,發現與BaseService內部實現功能是一樣的,只是參數不同。我們先定義好ExtensionService: ``` package com.mk.designDemo.designs.adapter; public interface ExtensionService { void execute(Integer param); } ``` 類適配器的實現方法: ``` package com.mk.designDemo.designs.adapter; import com.mk.designDemo.designs.adapter.impl.BaseServiceImpl; public class ClassAdapter extends BaseServiceImpl implements ExtensionService { @Override public void execute(Integer param) { doExecute(String.valueOf(param)); } } ``` 對象適配器的實現方法: ``` package com.mk.designDemo.designs.adapter; import java.util.Optional; /** * 對象適配器,通過implements適配者來實現 */ public class ObjectAdapter implements ExtensionService { private BaseService baseService; public ObjectAdapter(BaseService baseService) { this.baseService = baseService; } @Override public void execute(Integer param) { baseService.doExecute(Optional.ofNullable(param).orElse(0).toString()); } } ``` 測試類: ``` package com.mk.designDemo.adapter; import com.mk.designDemo.designs.adapter.ClassAdapter; import com.mk.designDemo.designs.adapter.ObjectAdapter; import com.mk.designDemo.designs.adapter.impl.BaseServiceImpl; import org.junit.Test; public class AdapterTest { @Test public void testObjectAdapter() { ObjectAdapter objectAdapter = new ObjectAdapter(new BaseServiceImpl()); objectAdapter.execute(10); } @Test public void testClassAdapter() { ClassAdapter classAdapter = new ClassAdapter(); classAdapter.execute(20); } } ``` 我們這邊可以看到,ExtensionService 并沒有把BaseService中復雜的業務邏輯再寫一遍,極大的提高了系統代碼的復用性。由于類適配器是采用對象繼承的方式,所以只能做單個對象的適配,如果我們存在多個對象的適配,最好使用對象適配器來實現。 ### 優缺點 - 優點: 更好的復用性,更好的可擴展性 - 缺點: 過多的使用適配器,會讓系統非常凌亂,不容易整體進行把握
                  <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>

                              哎呀哎呀视频在线观看