예제 #1
0
            static void Main(string[] args)
            {
                SystemFacade facade = new SystemFacade();

                facade.Buy();
                Console.Read();
            }
예제 #2
0
        //外观模式调用
        public static void GetFacade()
        {
            SystemFacade facade = new SystemFacade();

            facade.Buy();
            Console.Read();
        }
        public void FacadePatternTest01()
        {
            // 不使用外观模式的情况
            // 此时客户端与三个子系统都发送了耦合,使得客户端程序依赖与子系统
            // 为了解决这样的问题,我们可以使用外观模式来为所有子系统设计一个统一的接口
            // 客户端只需要调用外观类中的方法就可以了,简化了客户端的操作
            // 从而让客户和子系统之间避免了紧耦合
            var facade = new SystemFacade();

            facade.Buy();

            Assert.AreEqual(facade.Log[0], "执行身份验证");
            Assert.AreEqual(facade.Log[1], "执行系统安全检查");
            Assert.AreEqual(facade.Log[2], "执行网银安全检测");
            Assert.AreEqual(facade.Log[3], "购买处理完成");
        }