91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP與Spring之間的強勢接口設計:學習案例

發布時間:2020-07-23 13:48:11 來源:網絡 閱讀:648 作者:myeit 欄目:web開發

高煥堂TCLUB微信講座(2015/9/29)內容分享

從編程到設計.學習案例(1)

PHPSpring之間的強勢接口設計

 

by 高煥堂(2015.10.1)


前言:

  這是高煥堂TClub微信講座(2015/9/29)的內容,大家分享,歡迎免費加入TClub。詳細請參考:http://www.cnblogs.com/SmartADT/

      大家都知道,要學好軟件(或架構)設計,不是從業務或需求開始,而是從接口(Interface)設計出發,才是迅速成為有效(架構)設計師的鳥語花香之路。因為業務(或需求分析)的焦點在于流程(Business flow),而軟件(架構)設計的天賦職責就在于結構(Structure),這結構是用來支撐互聯網時代下的千變萬化企業流程,而未來企業環境、需求與流程的<變化>是不可知的,所以才需要(架構)設計。

      因此,知道結構與流程是分別來自不同而互補的兩個面向(Dimension),軟件(架構)設計師必須基于兩個不同視角(View)來設計架構和規劃流程。因此,軟件(架構)設計不是從業務(或需求)流程開始,而是從接口設計出發的,而接口不是從業務(領域)或需求抽象出來的。許多初學軟件設計者常常迷失于其中,沒關系的,我(高老師)陪您越過這個原野,馳聘于廣闊無垠的軟件世界。您可聽聽高老師怎么說=> 下載高老師視頻(免費)

   

一、目標

  • 設計通用性(又稱通用型)接口(Interface),讓我們自己能掌握系統架構里的接口制定權,擁有話語權,所以是一種強勢型接口。

  • 基于自己的接口,整合IWebShop、Spring和DBMS等外來平臺框架,讓這些外來的平臺框架都成為可被我們抽換的架構性插件(Plugin)。

  • 自己制定的(通用性)接口,成為各服務器之間的必經渠道,我們可以設計抽象(父類)來實現這項接口,來監控交易(Transaction)流動和流量,例如我們可以設計一個”看門狗(watch dog)”的類。

  • 隨著業務和系統的成長,將會增添更多上述的具象類(如watch dog類),逐漸形成我們自己的平臺框架(Framework)了。

  • 基于自己制定的接口和框架,才能讓外來平臺框架成為可抽換,可新陳代謝的模塊,以避免我們的成長受制于外來平臺的接口和功能,確保我們能彈性成長,支撐成千上百萬的業務應用功能,并穩定、永續茁壯。

 

二、從外來平臺出發

  • 首先拿基于PHP的iWebShop和Spring兩個外來的平臺框架為例。

    PHP與Spring之間的強勢接口設計:學習案例

  • 我們來將兩者分離。

    PHP與Spring之間的強勢接口設計:學習案例

  • 讓兩者便成為Loosely-Coupled。

    PHP與Spring之間的強勢接口設計:學習案例

  • 這項目目標實現途徑就是:設計自己的<通用型接口>;又稱為<通用性接口>。

    PHP與Spring之間的強勢接口設計:學習案例

 

三、<通用型接口>的角色

  • 從業務應用(App)開發的視角來看,我們會在iWebShop框架里撰寫特殊性業務邏輯,成為iWS App軟件,并調用Sring框架里的共享性企業邏輯(Business logic, or Business object),以及DB Server里的數據。

     PHP與Spring之間的強勢接口設計:學習案例 

  • 最典型的調用流程是:

     PHP與Spring之間的強勢接口設計:學習案例 

  • 運用proxy-stub設計模式(Design pattern),讓這iWS App可以掌握跨界的通信接口。

        PHP與Spring之間的強勢接口設計:學習案例

 

  • 這個iWS App就包含兩部分,例如:iwsActivity(扮演proxy角色)和iwsService(扮演stub角色)。其分別置于分界線的兩邊。

     PHP與Spring之間的強勢接口設計:學習案例    

  • 最典型的調用流程是:

     PHP與Spring之間的強勢接口設計:學習案例

  • 設計我們自己的通用性接口:

     PHP與Spring之間的強勢接口設計:學習案例  

  • 其典型的調用流程是:

     PHP與Spring之間的強勢接口設計:學習案例

 

四、<通用性接口>的設計要點:應用<工廠設計模式(Factory Pattern)

  • 設計一個absFactory父類。

     PHP與Spring之間的強勢接口設計:學習案例

  • 設計一個BridgeLib模塊。

        PHP與Spring之間的強勢接口設計:學習案例 

  • 其典型的調用流程,分為兩的步驟:1)獲取Service;2)透過通用性接口來調用Service。

 

五、<通用性接口>的調用步驟(1):獲取Service

  • 步驟<1a>:透過BridgeLib模塊調用Factory,來創建iwsFactory對象,然后回傳(return)此對象的通用性接口。

     PHP與Spring之間的強勢接口設計:學習案例(步驟<1a>)

  • 步驟<1b>:BridgeLib模塊調用myFactory,來創建iwsService對象,然后回傳(return)此對象的通用性接口。

     PHP與Spring之間的強勢接口設計:學習案例(步驟<1b>)

六、<通用性接口>的調用步驟(2)透過通用性接口來調用Service

  • 在上一小節的步驟<1b>里,BridgeLib將iwsService的通用性接口回傳給iwsActivity。

  • 于是,在這步驟<2>里,iwsActivity就透過通用性接口調用到iwsService和Spring框架了。

     PHP與Spring之間的強勢接口設計:學習案例(步驟<2>)

七、<通用性接口>的優越特性

  • 通用性接口是我們自己設計和掌握的,讓iWebShop與Spring變成松偶合(loosely-coupled)。

  • 因此,iWebShop/iwsActivity除了Spring之外,還可以搭配其它后臺框架,例如GAE云平臺等。

  • 只要我們的通用性接口維持不變,iWebShop/iwsActivity等前端的全部代碼都可以不受影響。不但可以節省改版成本、快速改版之外、系統升級過程中的穩定度,還具備銜接到各式各樣云平臺的無限擴充能力。

 

PS. 這是高煥堂TClub微信講座(2015/9/29)的內容,大家分享,歡迎免費加入TClub。詳細請參考:http://www.cnblogs.com/SmartADT/


~ End ~


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昔阳县| 宿迁市| 久治县| 合川市| 邢台市| 阿鲁科尔沁旗| 永仁县| 天长市| 临湘市| 北海市| 平和县| 德化县| 乌兰县| 景泰县| 田东县| 文安县| 镇平县| 舟曲县| 石家庄市| 津市市| 达州市| 鸡西市| 湖北省| 大方县| 洱源县| 黔南| 宜兰市| 凤山市| 台南县| 遵义市| 罗江县| 舞钢市| 都昌县| 竹北市| 呈贡县| 莒南县| 肥东县| 搜索| 托克逊县| 盐津县| 车致|