中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

教務處網站建設西安seo推廣

教務處網站建設,西安seo推廣,抖音代運營協(xié)議模板,電腦網站和手機網站怎么做相同路徑Unity實現(xiàn)設計模式——適配器模式 適配器模式又稱為變壓器模式、包裝模式(Wrapper) 將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 在一個在役的項目期望在原有接口的基礎…

Unity實現(xiàn)設計模式——適配器模式

適配器模式又稱為變壓器模式、包裝模式(Wrapper) 將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。
在一個在役的項目期望在原有接口的基礎上拓展,那么適配器模式是最適合的。 即需要使用一個已有或新建的類,但這個類又不符合系統(tǒng)的接口,則可以使用適配器模式。

client:需要使用適配器的對象,不需要關心適配器內部的實現(xiàn),只對接目標角色。
Target:目標角色,和client直接對接,定義了client需要用到的功能。
Adaptee:需要被進行適配的對象。
Adapter:適配器,負責將源對象轉化,給client做適配。

在這里插入圖片描述
下面還是使用兩個例子來說明適配器模式

(一)使用比較抽象的例子來說明

1.Target

class Target
{public virtual void Request(){Debug.Log("Called Target Request()");}
}

2.Adaptee

class Adaptee
{public void SpecificRequest(){Debug.Log("Called SpecificRequest()");}
}

可以看到目標對象和待適配對象并不匹配
使用適配器來讓二者聯(lián)系起來

3.Adapter

class Adapter : Target
{private Adaptee _adaptee = new Adaptee();public override void Request(){// Possibly do some other work//  and then call SpecificRequest_adaptee.SpecificRequest();}
}

4.測試

public class AdapterStructure : MonoBehaviour
{void Start( ){// Create adapter and place a requestTarget target = new Adapter();target.Request();}
}

可以發(fā)現(xiàn)兩個無關的類很自然的就聯(lián)系起來了!

(二)使用具體的例子來說明

現(xiàn)在有敵方攻擊者的基類,派生出了敵方坦克,同時有敵方機器人但是機器人的接口和敵方攻擊者的接口不同,我們需要進行適配

1. IEnemyAttacker

    public interface IEnemyAttacker{void FireWeapon();void DriveForward();void AssignDriver(string driver);}

2. EnemyTank

    public class EnemyTank : IEnemyAttacker{public void FireWeapon(){int attackDamage = Random.Range(1, 10);Debug.Log("Enemy Tank does " + attackDamage + " damage");}public void DriveForward(){int movement = Random.Range(1, 5);Debug.Log("Enemy Tank moves " + movement + " spaces");}public void AssignDriver(string driver){Debug.Log(driver + " is driving the tank");}}

3. EnemyRobot

    public class EnemyRobot{public void SmashWithHands(){int attackDamage = Random.Range(1, 10);Debug.Log("Robot causes " + attackDamage + " damage with it hands");}public void WalkForward(){int movement = Random.Range(1, 3);Debug.Log("Robot walks " + movement + " spaces");}public void ReactToHuman(string driverName){Debug.Log("Robot tramps on " + driverName);}}

可以看出這里不同,當然可以對EnemyRobot派生自IEnemyAttacker接口,然后重新實現(xiàn)接口,但是在多人協(xié)作的場景,這樣是不允許的。同時該類可能在別處引用,顯然有很大的工作量要修改。

4. EnemyRobotAdaper

    public class EnemyRobotAdaper : IEnemyAttacker{EnemyRobot robot;public EnemyRobotAdaper(EnemyRobot robot){this.robot = robot;}public void FireWeapon(){robot.SmashWithHands();}public void DriveForward(){robot.WalkForward();}public void AssignDriver(string driver){robot.ReactToHuman(driver);}}

5.測試

    public class AdapterPatternExample2 : MonoBehaviour{void Start(){IEnemyAttacker tank = new EnemyTank();EnemyRobot fredTheRobot = new EnemyRobot();IEnemyAttacker adapter = new EnemyRobotAdaper(fredTheRobot);fredTheRobot.ReactToHuman("Hans");fredTheRobot.WalkForward();tank.AssignDriver("Frank");tank.DriveForward();tank.FireWeapon();adapter.AssignDriver("Mark");adapter.DriveForward();adapter.FireWeapon();}}
http://www.risenshineclean.com/news/40360.html

相關文章:

  • 怎么做網站公司宣傳資料電商seo優(yōu)化是什么
  • ps企業(yè)站網站做多大的市場調研怎么寫
  • 在線旅游攻略網站建設方案關鍵詞優(yōu)化好
  • 網站地圖怎么建設網頁制作教程步驟
  • 人人建站怎么做網站關鍵詞優(yōu)化
  • 做視頻網站視頻文件都存放在哪站長之家seo綜合查詢
  • 網站建設丂金手指科杰湖南網絡推廣服務
  • 雅安網站制作福建seo顧問
  • 投票網站怎么做網絡營銷推廣的要點
  • wap多用戶網站站長之家官網登錄入口
  • 網站集約化建設解讀百度推廣優(yōu)化是什么意思
  • 做音頻的網站正規(guī)接單賺傭金的平臺
  • 昆山住房和城鄉(xiāng)建設局網站優(yōu)化網站內容
  • 做的網站電腦上跟手機上不一樣嗎seo優(yōu)化廠商
  • 農產品網站建設計劃書seo技術介紹
  • 世界上網站做的好的例子品牌整合營銷
  • 新疆生產建設兵團社保局網站百度關鍵字推廣費用
  • 珠海網站制作網絡推廣信息流優(yōu)化師前景
  • 網站基礎建設巴巴商友圈網絡代運營推廣
  • 網站建設哪家公司好 電商 b2c外貿網站推廣公司
  • 讓醫(yī)院做網站的策劃書國外免費網站建設
  • 青島網站建設培訓搜狗收錄入口
  • ps臨摹網站防城港網站seo
  • 國內net開發(fā)的網站建設網站優(yōu)化哪家好
  • 福州網站制作怎樣網銷怎么做
  • 網站開發(fā)廣告推廣網站有哪些
  • 如何免費申請網站域名網站制作公司排行榜
  • jsp網站購物車怎么做seo的作用
  • 什么軟件可以做網站html論壇推廣軟件
  • python做網站php產品網絡推廣深圳