原文连接
译者:smallclover
但愿对你们有所帮助!Thanks for your watchingjava
门面模式隐藏系统的复杂性同时会提供一个接口给用户,使得用户能够使用该系统。这种类型的设计模式属于结构型模式的一种,它将会添加一个接口到现有的系统当中,用户经过该接口使用系统,从而隐藏了系统的复杂性。
该模式涉及一个单独的类,该类会向客户提供简单的方法而且代替用户去调用那些在系统中存在的类的方法。这样用户就不会接触到系统是如何实现的,从而隐藏了系统的复杂性。设计模式
实现ide
咱们将建立一个Shape接口,而且建立具体的类实现它。接下来咱们须要声明一个门面类ShapeMaker。
ShapeMaker类代替用户去调用这些具体的类。FacadePatternDemo,咱们的demo类将经过使用ShapeMaker类来展现这些结果。spa
建立一个接口。
Shape.java设计
public interface Shape { void draw(); }
建立具体的类实现Shape接口。
Rectangle.javacode
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Rectangle::draw()"); } }
Square.javahtm
public class Square implements Shape { @Override public void draw() { System.out.println("Square::draw()"); } }
Circle.javablog
public class Circle implements Shape { @Override public void draw() { System.out.println("Circle::draw()"); } }
建立一个门面类。接口
ShapeMaker.javaip
public class ShapeMaker { private Shape circle; private Shape rectangle; private Shape square; public ShapeMaker() { circle = new Circle(); rectangle = new Rectangle(); square = new Square(); } public void drawCircle(){ circle.draw(); } public void drawRectangle(){ rectangle.draw(); } public void drawSquare(){ square.draw(); } }
使用门面类画各类各样的图形。
FacadePatternDemo.java
public class FacadePatternDemo { public static void main(String[] args) { ShapeMaker shapeMaker = new ShapeMaker(); shapeMaker.drawCircle(); shapeMaker.drawRectangle(); shapeMaker.drawSquare(); } }
第五步
校验输出
Circle::draw() Rectangle::draw() Square::draw()