美文网首页
java基础知识8-设计模式

java基础知识8-设计模式

作者: liwsh | 来源:发表于2021-04-29 19:33 被阅读0次

    1.接口和抽象类区别

    接口是对行为的抽象,抽象方法的集合。不能实例化,不能有任何非常量成员,没有非静态方法实现。接口增加方法所有实现类都需要实现
    抽象类是不能实例化的类,主要目的是代码重用。抽象类增加非抽象方法,子类不需要感知。

    2.基本设计原则

    1.单一职责
    对一个类而言,应该仅有一个引起它变化的原因。如果存在多于一个动机去改变一个类,那么这个类就具有多于一个的职责,就应该把多余的职责分离出去,再去创建一些类来完成每一个职责
    2.开关原则
    一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。目的就是保证程序的扩展性好,易于维护和升级
    3.里式替换原则
    子类可以扩展父类的功能,但是不能改变父类原有的功能。继承必须明确确保超类(父类)所拥有的性质在子类中仍然成立

    1. 接口分离原则
      建立单一接口,代替庞大臃肿的接口。通俗来说就是:接口尽量细化,同时保证接口中的方法尽量的少。一个接口中包含太多的行为时,会导致它们与客户端的不正常依赖关系,要做的就是分离接口,从而实现解耦。
    2. 依赖倒置原则
      是一个类与类之间的调用规则。这里的依赖就是代码中的耦合。高层模块不应该依赖底层模块,二者都应该依赖其抽象了;抽象不依赖细节;细节应该依赖抽象。接口编程。
    3. 迪米特原则
      Law of Demeter(最小知识原则):一个对象应该对其他对象有最少的了解。通俗来说就是,一个类对自己需要耦合或者调用的类知道的最少,你类内部怎么复杂,我不管,那是你的事,我只知道你有那么多公用的方法,我能调用。
      迪米特原则不希望类与类之间建立直接的接触。如果真的需要有联系,那么就通过它们的友元类来传达。举例来说:你需要买房子了,现在存在三座合适的楼盘A,B,C,但是你不必直接去楼盘买楼,而是在售楼处去了解情况。这样就减少了你(购房者)与楼盘两个类之间耦合。

    3.设计模式分类

    1.创建者模式
    创建过程各种解决方案,工厂模式,单例模式,构建器模式,原型模式
    2.结构型模式
    软件设计结构的总结,关注于类,对象继承,组合方式的实践经验:桥接模式,适配器模式,装饰模式,代理模式,组合模式,外观模式
    3.行为型模式
    从类,对象之间交互,职责划分等角度总结的经验:策略模式,解释器模式,命令模式,观察者模式


    image.png

    4 设计模式关联

    image.png

    4. 设计模式示例

    工厂方法模式:https://blog.csdn.net/carson_ho/article/details/52343584

    装饰器模式:inputStream,bufferedInputStream为输入流增加缓存功能
    构建器模式:httpRequest.newBuilder
    单例模式:https://blog.csdn.net/u011595939/article/details/79972371

     public class Singleton2 {
       private static final Singleton2 instance = new Singleton2();
       private Singleton2() {
        }
      public static Singleton2 getInstance() {
        return instance;
    }
    }
    

    其他模式举例:https://www.runoob.com/design-pattern/abstract-factory-pattern.html
    桥接模式:https://www.liaoxuefeng.com/wiki/1252599548343744/1281319266943009
    过滤器模式:https://www.runoob.com/design-pattern/filter-pattern.html

    相关文章

      网友评论

          本文标题:java基础知识8-设计模式

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