Unity 设计模式之 适配器模式的实例介绍
1、适配器模式:
将一个类的接口转换成客户希望的例外一个接口,Adapter 模式使得原本由于接口不兼容二不能一起工作的那些类可以一起工作。

2、模式中的角色:
1)Target(目标类):这时客户所期待的接口,目标可以使具体的或抽象的类,也可以是接口;
2)Adapter(适配者类):通过在内部包装一个 Adapter 对象,把源接口转换为目标接口;
3)Adaptee(被适配者类):需要适配的类;
3、适配者模式使用实例

1、打开Unity,新建一个空工程,具体如下图

2、在工程中,新建几个脚本,然后双击打开,具体如下图

3、脚本的具体代码和代码说明如下图





4、PlayerTarget 脚本具体内容如下:
public abstract class PlayerTarget {
protected string name;
public PlayerTarget(string name){
this.name = name;
}
public abstract void Attack ();
}
5、Forwards 脚本具体内容如下:
using UnityEngine;
public class Forwards : PlayerTarget {
public Forwards(string name):base(name){
}
public override void Attack ()
{
Debug.Log (string.Format ("Forwards {0} Attack", name));
}
}
6、ForeignCenterAdaptee 脚本具体内容如下:
using UnityEngine;
public class ForeignCenterAdaptee {
private string name;
public string Name {
get {
return name;
}
set {
name = value;
}
}
public void Attack(){
Debug.Log (string.Format ("ForeignCenter {0} 攻击", name));
}
}
7、TranslatorAdapter 脚本具体内容如下:
public class TranslatorAdapter : PlayerTarget {
private ForeignCenterAdaptee foreignCenter = new ForeignCenterAdaptee();
public TranslatorAdapter(string name):base(name){
foreignCenter.Name = name;
}
public override void Attack ()
{
foreignCenter.Attack ();
}
}
8、Test 脚本具体内容如下:
using UnityEngine;
public class Test : MonoBehaviour {
// Use this for initialization
void Start () {
PlayerTarget player1 = new Forwards ("Player1");
player1.Attack ();
PlayerTarget player2 = new TranslatorAdapter ("外籍球员2");
player2.Attack ();
}
}
9、脚本编译正确,回到Unity界面,在场景中新建一个 GameObject,并把 Test 脚本赋给 GameObject,具体如下图

10、运行场景,控制台 Console 打印如下图

11、到此,《Unity 设计模式之 组合模式的实例介绍》讲解结束,谢谢