外观模式
外观模式提供了一个统一的接口,用来访问子系统中的一群接口
客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。代码来了:
#region 子系统
// 子系统
public class RegisterCourse
{
public bool CheckAvailable(string courseName)
{
Console.WriteLine("正在验证课程 {0}是否人数已满", courseName);
return true;
}
}
// 子系统
public class NotifyStudent
{
public bool Notify(string studentName)
{
Console.WriteLine("正在向{0}发生通知", studentName);
return true;
}
}
#endregion
// 外观类
public class RegistrationFacade
{
private RegisterCourse registerCourse;
private NotifyStudent notifyStu;
public RegistrationFacade()
{
registerCourse = new RegisterCourse();
notifyStu = new NotifyStudent();
}
public bool RegisterCourse(string courseName, string studentName)
{
if (!registerCourse.CheckAvailable(courseName))
{
return false;
}
return notifyStu.Notify(studentName);
}
}
//使用
private static RegistrationFacade facade = new RegistrationFacade();
static void Main(string[] args)
{
if (facade.RegisterCourse("设计模式", "Learning Hard"))
{
Console.WriteLine("选课成功");
}
else
{
Console.WriteLine("选课失败");
}
Console.Read();
}
更多精彩

