軟件架構設計模式——從事機器人工程師必須掌握的基本設計模式盤點:適配器模式

設計模式

軟件開發需要做到的是需求分析,概要設計,然後是詳細設計。詳細設計就是模塊設計階段。設計模式就是在這個階段碰到局部或者通用問題的時候來使用,TA是一個如何解決問題的描述,參與者有誰?目的是什麼?類圖如何畫出來?

設計模式在軟件工程中的定義是:
解決軟件設計中常見問題的一種通用和可重用的解決方案。

在這裏插入圖片描述我們的UML類圖可以轉換成代碼的骨架,想要運行代碼,內容需要我們來填充。

在我們掌握設計模式的定義,引入的意義,我們提倡使用的原因之後(一句話總結就是站在巨人的肩膀上看的遠,坐在大樹下好乘涼,有前人已經測試驗證過的方法符合我們的情景,那麼我們就拿來先用再改進),我們來具體瞭解一下機器人領域常使用的設計模式( A recurring solution to a standard (well-defined) problem in SW design.)

DP categories in Robotics (for now):

  1. Communication patterns: related to what happens between two or more components.
  2. Component patterns: related to the internal behavior of typically used components in robot SW frameworks.
  3. System architecture patterns: related to how a huge number of components interact to form (sub)systems (examples throughout the course).

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200524122943794.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk5MTY3Mw==,size_16,color_FFFFFF,t_70]
我們從上面這張思維導圖出發,簡單瞭解圖中提到的6種設計模式。

適配器模式

瞭解適配器模式,我們從瞭解轉換插頭開始。去國外旅行由於不同國家的插口不同,我們想要充電是一定要帶着轉換插頭的。適配器模式:使一個類和一個接口不匹配的其他類進行交互我們這樣做的意圖是想讓一個類的接口轉換成client類期望的接口,讓類協同工作。
在這裏插入圖片描述殘留問題:如何代碼實現適配器模式以後再學習。
我們的原則儘量的少編寫代碼,儘量使用適配器適配已經存在的接口

比如我們已經存在了兩種組件,一個是讀取傳感器的數據,比如雷達定位信息等,一個是實現機器人定位算法的組件。可能我們第一個組件的接口提供int類型數據,第二個組件接口提供double類型數據,那麼我們如何解決這個問題?
(畫外音,哈哈哈,開心,掌握一種新技能,很好用的一種方法,推薦大家使用:markdown 如何設置顏色
最簡單天真的方法是我們更改兩個組件相應的代碼,(小白專屬技能,我是小白,爲小白點贊)但這其實是一個很不好的方法,違反了我們的原則。在這種情況下,我們希望使用適配器模式。

It translates one component interface into an interface compatible to another component.

使用適配器模式的時候,我們也要掌握一個小tip,最好實現適配器模式的代碼要短小精悍。
在這裏插入圖片描述殘留問題這是爲什麼呢?考慮到時間延遲,實時性,如果有if-else,我們會有不同的延遲,我們希望適配器是有確定輸入輸出的並且反映迅速的。

Pay attention!
• We want the data to pass through the Adapter component quickly in order to minimize the delay of inter-component communication.
• The Adapter component should react as quickly as possible to new data or service requests.

UML 繪圖表示適配器模式如下:
在這裏插入圖片描述ROS數據可視化工具Rviz和三維物理引擎機器人仿真工具V-rep Morse Gazebo Webots USARSimRos等概述,後期學習。
在這裏插入圖片描述今日寫文背景音樂華晨宇的《降臨》

La vi ah vi ah vi 夜降臨播種 寬宥 寬宥啊
La vi ah vi ah vi 入夢境之後請小心秉燭夜遊
La vi ah vi ah vi 格林餵養着 野獸 野獸啊
La vi ah vi ah vi 光臨人間尚不知憂
前瞻又顧後
萬象
迎一杯枯榮
雙手捧新芽降落
瘋與靜默
融進大雨蕭索
學不會懵懂
張望着相對
不離不休

La vi ah vi ah vi 夜降臨播種 寬宥 寬宥啊
La vi ah vi ah vi 河童遺忘的 蘋果偷渡到天國
La vi ah vi ah vi 隱祕它綻放 太多 太多啊
La vi ah vi ah vi 伊甸園放走阿修羅
水仙忍涕落
萬象
迎一杯枯榮
雙手捧新芽降落
瘋與靜默
融進大雨蕭索
學不會懵懂
張望着相對
不離不休

La vi ah vi ah vi 夜降臨播種 寬宥 寬宥啊
La vi ah vi ah vi 寂靜消散曙光暗涌 都奔向白晝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章