外观模式的目的及其设计方案

电子说

1.2w人已加入

描述

外观模式的目的是为类的调用提供一个统一的接口,用户只需要通过这个接口就可以实现内部复杂类的方法,无须详细了解内部复杂类的具体实现方式,降低系统调用的复杂度。

下例仍以画图形为例说明外观模式的用法。Shape接口类有两个实现类Circle和Rectangle,其内部具体的画圆和画矩形可能较为复杂,为此,设计了一个外观类ShapeMaker,通过ShapeMaker类的调用就可以实现画圆和画矩形的功能,用户完全不需要了解Circle和Rectangle类的内容代码。

外观模式常用于应用程序的对外接口设计,通过设计一个外观类,不了解应程序内部代码的人也可以轻松应用程序的相关功能,有利于程序的模块化设计。

printf函数

Shape接口类:

package facade;
public interface Shape {
  public void draw();
}

Circle实现类:

package facade;
public class Circle implements Shape{
  @Override
  public void draw() {
    System.out.println("画圆形");  
  }
}

Rectangle实现类:

package facade;
public class Rectangle implements Shape{
  @Override
  public void draw() {
    System.out.println("画矩形");  
  }
}

ShapeMaker外观类:

package facade;
public class ShapeMaker {
  private Shape circle;
  private Shape rectangle;
  public ShapeMaker() {
    circle=new Circle();
    rectangle=new Rectangle();
  }
  public void circleDraw() {
    circle.draw();
  }
  public void rectangleDraw() {
    rectangle.draw();
  }
}

主函数调用方式:

package main;
import facade.*;
public class FacadePattern {
  public static void main(String[] args) {
    ShapeMaker shapeMaker=new ShapeMaker();
    shapeMaker.circleDraw();
    shapeMaker.rectangleDraw();
  }
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分