设计模式简介
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。
外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
优点: 1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。
缺点: 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。
实现
新建一个接口:
public interface Animal {
public void ability();
}
实现这个接口
public class Cat implements Animal{
@Override
public void ability() {
System.out.println("我是一只猫,我会爬树!");
}
}
public class Mice implements Animal{
@Override
public void ability() {
System.out.println("我是老鼠,我会打洞!");
}
}
新建一个外观类:
public class AnimalFacade {
Animal cat,mice;
public AnimalFacade(){
this.cat = new Cat();
this.mice = new Mice();
}
public void CataAbility() {
this.cat.ability();
}
public void MiceAbilite() {
this.mice.ability();
}
}
使用外观类
public static void main(String[] args) {
AnimalFacade animalFacade = new AnimalFacade();
animalFacade.CataAbility();
animalFacade.MiceAbilite();
}
我是一只猫,我会爬树!
我是老鼠,我会打洞!