美文网首页
类似——外观模式

类似——外观模式

作者: 芋山 | 来源:发表于2020-10-23 20:59 被阅读0次

学习Java,有三大特性:封装、多态、继承。

上次说到:学习设计模式,是了解多态这个特性,非常好的一个途径。

另外一个,设计模式,可以帮助我们写出容易维护、漂亮代码的手段。

如果有重复的代码,可以把重复代码提取出来,便于复用,而且之后修改的话,只要修改比较少的地方就够了,这样可以减少修改的地方。省时省力。

  public class A {
      void say() {
          System.out.println("Java三大特性:封装、多态、继承!!");
      }
  }
  
  public class B {
      void say() {
          System.out.println("Java三大特性:封装、多态、继承!!");
      }
  }
  
  public class C {
      void say() {
          System.out.println("Java三大特性:封装、多态、继承!!");
      }
  }
  
  public class D {
      void say() {
          System.out.println("Java三大特性:封装、多态、继承!!");
      }
  }
  
  ......

A-D还有更多的类,使用的是总一个方法。这时候,我们可以使用CV,一顿复制粘贴。
如果这时候,java又增加一个特性的话,我们就会非常头痛,有几个类,就需要修改几次。
我们可以把这个方法提取出来,然后只要修改一个地方就可以了。

  public class theSameMethod {
      static void say() {
          System.out.println("Java三大特性:封装、多态、继承!!");
      }
  }
  
  //然后可以让其他类调用这个方法
  public class A {
      void say() {
          theSameMethod.say();
      }
  }
  
  public class B {
      void say() {
          theSameMethod.say();
      }
  }
  ....

这时候,我们给它升级一下:
比如:我们需要调用7-8个方法,而且顺序不能打乱。

  public class A {
      void A1(){}
      void A2(){}
  }
  
  public class B {
      void B1(){}
      void B2(){}
  }
  
  public class C {
      void C1(){}
      void C2(){}
  }
  
  public class D {
      void D1(){}
      void D2(){}
  }

如果每次直接调用其中几个方法,很容易调用错,而且这些方法都是重复的。这时候就可以写一个公共方法。

public class Facade {
    private A a;
    private B b;
    private C c;
    private D d;

    public Facade() {
        a = new A();
        b = new B();
        c = new C();
        d = new D();
    }
          
    public void methodA() {
        a.A1();
        b.B2();
        a.A2();
        c.C2();
    }
}

我们直接就调用Facade的methodA()方法就可以了。简单、省力。
这个模式也叫外观模式。
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

下面是自己的一些想法和感受:

java是一门面向对象的语言。万物皆对象。

学习,使用java久了之后,养成一个习惯:“能不自己干的,就不用自己干”。😀

比如,我们会依赖很多jar,里面有很多很好用的方法,工具。

比如fastjson,pagehelper等等

为啥需要借助他人的工具呢?

因为方便啊。

我感觉更多的是:这些开源的工具,已经经历过很多测试用例的验证,生产的环境的洗礼。这些工具相对稳定,而且有些工具比自己写出来的效率高。


如果有机会的话,我还是会自己去写一点工具使用,或许可能有一些问题,但是公司还是宽容的,可以让我们自己是实验。

还是很感谢公司,给我提供这么大一个平台,让我在里面施展自己的“才华”。

相关文章

网友评论

      本文标题:类似——外观模式

      本文链接:https://www.haomeiwen.com/subject/gydbmktx.html