精华内容
下载资源
问答
  • 外观模式

    千次阅读 2019-09-25 20:40:22
    外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类...

    外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

    这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

    介绍

    意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。

    何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统的入口。

    如何解决:客户端不与系统耦合,外观类与系统耦合。

    关键代码:在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好。

    应用实例 :1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。 2、JAVA 的三层开发模式。

    优点 :1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。

    缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。

    使用场景 :1、为复杂的模块或子系统提供外界访问的模块。 2、子系统相对独立。 3、预防低水平人员带来的风险。

    注意事项:在层次化结构中,可以使用外观模式定义系统中每一层的入口。

    实现

    我们将创建一个 Shape 接口和实现了 Shape 接口的实体类。下一步是定义一个外观类 ShapeMaker

    ShapeMaker 类使用实体类来代表用户对这些类的调用。FacadePatternDemo,我们的演示类使用 ShapeMaker 类来显示结果。

    外观模式

    步骤 1

    创建一个接口。

    Shape.java

    public interface Shape {
    
        void draw();
    
    }
    

    步骤 2

    创建实现接口的实体类。

    Rectangle.java

    public class Rectangle implements Shape {
    
        @Override
        public void draw() {
            System.out.println("Rectangle::draw()");
        }
    
    }
    

    Square.java

    public class Square implements Shape {
    
        @Override
        public void draw() {
            System.out.println("Square::draw()");
        }
    
    }
    

    Circle.java

    public class Circle implements Shape {
    
        @Override
        public void draw() {
            System.out.println("Circle::draw()");
        }
    
    }
    

    步骤 3

    创建一个外观类。

    ShapeMaker.java

    public class ShapeMaker {
    
        private Shape circle;
        private Shape square;
        private Shape rectangle;
    
        public ShapeMaker() {
            circle = new Circle();
            square = new Square();
            rectangle = new Rectangle();
        }
    
        public void drawCircle() {
            circle.draw();
        }
    
        public void drawSquare() {
            square.draw();
        }
    
        public void drawRectangle() {
            rectangle.draw();
        }
    
    }
    

    步骤 4

    使用该外观类画出各种类型的形状。

    FacadePatternDemo.java

    public class FacadePatternDemo {
    
        public static void main(String[] args) {
            ShapeMaker shapeMaker = new ShapeMaker();
    
            shapeMaker.drawCircle();
            shapeMaker.drawRectangle();
            shapeMaker.drawSquare();
        }
    
    }
    

    步骤 5

    验证输出。

    Circle::draw()
    Rectangle::draw()
    Square::draw()
    
    展开全文
  • visual c++ vc自定义菜单外观,标题栏外观
  • 外观模式Demo

    2017-06-09 11:15:16
    外观模式Demo
  • phpstorm外观主题

    2017-05-11 16:12:46
    phpstorm外观主题
  • iTunes酒吧外观

    2021-04-06 05:28:14
    模仿iTunes和iPod管理器外观的控件。
  • 外观测试-源码

    2021-03-04 04:37:59
    外观测试
  • IC外观检测常见要求:  关键点:丝印、主体、管脚  丝印要求:清晰、完整、正确、位置统一、字体规则、logo规范、模号及产地凹印、PIN1明显  主体要求:尺寸规范、裂痕、残缺、刮伤、溢胶、变形、漏底材等符合...
  • designFlutter:设计Flutter的外观外观-Jacob Moura Fluterando
  • 外观模式.pdf

    2021-09-14 18:05:46
    外观模式.pdf
  • 外观模板之花卉

    2021-09-02 19:17:08
    外观模板之花卉
  • emacs-modern-fringes:替换外观难看的默认emacs边缘位图,并将其替换为外观更好的现代外观
  • 这是一个有关于java中Swing的外观动态改变的教学文档
  • 外观UI外观 这是一个Android演示应用程序,用于显示UI外观外观。 完成多少小时? 5小时-阅读笔记,观看教程和课程视频,并处理应用程序。 您完成了哪些必填和可选的故事? 适用于可绘制对象和样式的Android演示...
  • Qt界面外观

    2018-10-22 05:09:23
    本文主要讲解了Qt的界面外观,本文列举了详细的示例进行说明
  • 它的外观-源码

    2021-02-26 06:54:34
    它的外观
  • 示例外观模式-源码

    2021-02-17 18:51:34
    示例外观模式
  • 不同数据库的外观

    2021-04-07 07:54:23
    使用ORM模型的细节可为多个不同的数据库提供通用的外观
  • 外观设置程序

    2014-07-01 20:43:46
    外观设置程序,输入法的外观更改
  • skepchup建筑外观模型

    2016-11-10 23:17:43
    建筑外观
  • 轻松掌握java外观模式

    2020-09-01 12:32:05
    主要帮助大家轻松掌握java外观模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C#禁用外观选项卡

    2021-03-16 01:26:27
    摘要:C#源码,系统相关,外观选项卡 C#禁用外观选项卡,请小心测试,点击“启动外观选项卡”的时候,Explorer.EXE将退出,而后重新启动,请先保存你需要保存的文件再测试。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 334,896
精华内容 133,958
关键字:

外观