本文主要是介绍设计模式---外观模式(门面模式)(DesignPattern_Facade),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
示例:FACADE—我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我拍张照片了。
门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CameraFunctionA
{public void Flashlight(){Debug.Log("闪光灯功能");}
}public class CameraFunctionB
{public void Focus(){Debug.Log("对焦功能");}
}public class CameraFunctionC
{public void Shutter(){Debug.Log("快门功能");}
}public class CameraFunctionD
{public void Aperture(){Debug.Log("光圈功能");}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class FacadeTest : MonoBehaviour
{CameraFunctionA m_CameraFunctionA;CameraFunctionB m_CameraFunctionB;CameraFunctionC m_CameraFunctionC;CameraFunctionD m_CameraFunctionD;void Start(){m_CameraFunctionA = new CameraFunctionA();m_CameraFunctionB = new CameraFunctionB();m_CameraFunctionC = new CameraFunctionC();m_CameraFunctionD = new CameraFunctionD();}/// <summary>/// 自动挡拍照 【摄像我也不懂,瞎写的,明白意思就好】/// </summary>public void AutoShoot(){m_CameraFunctionA.Flashlight();//闪光灯功能m_CameraFunctionD.Aperture();//光圈功能m_CameraFunctionB.Focus();//对焦功能m_CameraFunctionC.Shutter();//快门功能}
}
这篇关于设计模式---外观模式(门面模式)(DesignPattern_Facade)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!