这个就很简单了,其实我们在编码的过程中很有可能不经意就会用到。先说概念
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
代码也是一个非常简单的例子,这里用了股票和基金概念做举例,建议先看代码再看注释
using UnityEngine;
public class Wai_Guan_Design : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//1.分别处理
Stock1 stock1 = new Stock1();
Stock2 stock2 = new Stock2();
stock1.Buy();
stock2.Buy();
}
}
//1,新建股票类
class Stock1
{
public void Sell()
{
Debug.Log("股票1卖出");
}
public void Buy()
{
Debug.Log("股票1买入");
}
}
//1
class Stock2
{
public void Sell()
{
Debug.Log("股票2卖出");
}
public void Buy()
{
Debug.Log("股票2买入");
}
}
下面我们加入外观类,统一管理Stock类,Start中的内容我们也可以改了
public class Wai_Guan_Design : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//2.统一处理
Fund fund = new Fund();
fund.Buy();
}
}
//2 添加基金类管理股票
class Fund
{
Stock1 stock1;
Stock2 stock2;
public Fund()
{
stock1 = new Stock1();
stock2 = new Stock2();
}
public void Buy()
{
stock1.Buy();
stock2.Buy();
}
public void Sell()
{
stock1.Sell();
stock2.Sell();
}
}
使用时机:
- 在设计初期,应该要有意识的将不同的两个层分离,比如三层架构,在层与层之间简历外观Facade
- 在开发阶段,子系统往往因为不断地重构演化而变得越来越复杂,大多数的模式使用时也会产生很多小的类,增加Facade可以提供一个简单的接口,减少他们之间的依赖。
- 在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,这时候可以开发一个Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的简单接口,让新系统与Facade交互,Facade与遗留代码交互。
看起来就像是把复杂的东西放到一个类里管理起来,以进行简单的调用。是不是很简单~恭喜你!!