Unity---游戏设计模式(4)之中介者模式




概述参考请看 参考博客

1、中介者模式


不使用中介者模式,各个系统之间交错调用,很复杂。


使用中介者模式,从多对多变为1对1.

中介者模式代码


/// <summary>
/// 单例模式、外观模式、中介者模式一起使用
/// </summary>
public class GameFacade
{
	#region 单例模式
    private static GameFacade _Instance;
    public static GameFacade Instance {
        get
        {
            if (_Instance == null)
            {
                _Instance = new GameFacade();
            }
            return _Instance;
        }
    }
    #endregion


    private AchievementSystem mAchievementSystem;
    private CharacterSystem mCharacterSystem;
    private GameEventSystem mGameEventSystem;
    private UISystem mUISystem;

    public void Init()
    {
        mAchievementSystem.Init();
        mCharacterSystem.Init();
        mGameEventSystem.Init();
        mUISystem.Init();
    }

	//系统间互相调用时,在GameFacade中写调用方法,再使用单例模式调用这个方法就OK了。
	//这样就不会出现因系统间互相调用,而搞不清楚的情况了
    public void Method1()
    {
        mCharacterSystem.Work();
    }
}

中介者模式和外观模式经常交叉使用,你中有我、我中有你。傻傻分不清楚。

2、中介者模式优缺点

优点

  1. 降低系统间的耦合性
  2. 提供系统的灵活性,使得各个系统对象独立而易于复用

缺点

  1. 中介者承担了较多的责任,所以当中介者被破坏后,各个系统将可能受到影响
  2. 添加新系统时,要修改中介者,违背开闭原则
posted @ 2019-09-24 09:46  Fflyqaq  阅读(686)  评论(0编辑  收藏  举报