2018年12月27日 17:20
原创作品,转载时请务必以超链接形式标明文章原始出处,否则将追究法律责任。
本次我们就看一下设计模式门店模式,即外观模式。这个模式应用场景是啥,就是将一堆单元整合起来,形成一个对接口。比如Scrum Master,作为对接口,其组内人员不收外界操控和打扰。所有的外界干扰均由Master动用资源来解决,这里的资源可以是Master自己,也可以是Scrum Member。所以在这里,Master就是个门店,你要买东西,你找我门店,有货我给你取,没货我给你调。至于我的仓库人员,进货人员,运输人员和你统统没关系。
今天就以一个军事的例子来看一下,首先定义一个军人接口。
public interface 军人 { void 行动(); }
再下来我们定义一些不同类型的军人,他们各自具备行动能力。
public class 工程兵 : 军人 { public void 行动() { Console.WriteLine("排雷"); } } public class 狙击手 : 军人 { public void 行动() { Console.WriteLine("狙杀"); } } public class 炮兵 : 军人 { public void 行动() { Console.WriteLine("炮击"); } }
接下来,我们要搞一个门面类(团部),有炮兵,当然是团以上规模,你要想排雷,你找门面,你要想定点狙杀,你也找门面。
public class 团部 { 军人 工程兵; 军人 狙击手; 军人 炮兵; public 团部() { 工程兵 = new 工程兵(); 狙击手 = new 狙击手(); 炮兵 = new 炮兵(); } public void 排雷() { 工程兵.行动(); } public void 狙击() { 狙击手.行动(); } public void 炮击() { 炮兵.行动(); } }
团部就是店面,你想排雷,你找团部,团部调动资源给你。
团部 团部 = new 团部(); 团部.排雷(); 团部.炮击(); 团部.狙击();
你想炮击就炮击,你想狙击就狙击。其实在这里团部就是一个高层接口,隐藏子系统复杂性,整合子系统,简化外部调用。
上一篇 设计模式之-代理模式
下一篇 设计模式之-命令模式
发表评论
匿名
用户评论
暂无评论