设计模式6 -- 外观模式

142 阅读2分钟

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

今天说一个特别简单的设计模式,看完这个设计模式你肯定会觉得设计模式原来如此简单。

老规矩,一开始打头的肯定是含义: 提供一个统一的接口,用来访问子系统中的一群接口,外观上看是一个接口,其实说白了就是把一堆不同操作的方法都封装在一起成为一个方法。

就比如说我们想吃炖排骨,于是当我们吃到排骨之前我需要干下面这些事情,1.去菜市场买排骨以及各种配料;2.起锅烧水焯肉;3.把肉捞出来;4.热油炒八角 ,花椒,葱姜蒜等调料;5.加入排骨煸炒;6.加水煮20分钟;7.捞出排骨吃。说的我都饿了,吃个好吃的排骨真是太不容易了, 没办法享受美食还是需要代价的。

这时候就需要外观模式将这些步骤统一在一起了。

 public class StewedSpareRibs{
     private People people;
     
     public StewedSpareRibs(People people){
         this.people = people;
     }
     
     public startStewedSpareRibs{
         /*
         * 1.去菜市场买排骨以及各种配料
         * 2.起锅烧水焯肉
         * 3.把肉捞出来
         * 4.热油炒八角 ,花椒,葱姜蒜等调料
         * 5.加入排骨煸炒
         * 6.加水煮20分钟
         * 7.捞出排骨吃
         */
         people.buyFood();
         people.water();
         people.takemeat();
         people.fry();
         people.stirIn();
         people.boil();
         people.eat();
     }
 }

这个模式主要是为了降低访问复杂系统的内部子系统时的复杂度。

优点: 1、减少系统之间相互依赖。 2、提高系统的灵活性。 3、安全性比较高,仅仅展示一个接口。

缺点: 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。同样也不符合单一职责原则,一个接口里执行的任务太多。

怎么样是不是很简单呢,这就是代理模式,我认为是最简单的设计模式了,因为我们平时写代码估计不知不觉的就会使用这种设计模式,毕竟这个设计模式简单的谁都会写。

\