「这是我参与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、安全性比较高,仅仅展示一个接口。
缺点: 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。同样也不符合单一职责原则,一个接口里执行的任务太多。
怎么样是不是很简单呢,这就是代理模式,我认为是最简单的设计模式了,因为我们平时写代码估计不知不觉的就会使用这种设计模式,毕竟这个设计模式简单的谁都会写。
\