# Java设计模式 **Repository Path**: godispy/java-design-patterns ## Basic Information - **Project Name**: Java设计模式 - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-08 - **Last Updated**: 2021-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java设计模式 #### 介绍 设计模式的简单demo,对技术的一个复习总结,加深对技术的理解 很多优秀的文章和书籍都讲的很明白了,我说下自己的体会。 1.单一职责原则,就是一个类只负责做一件事情。这样就可以做到解耦合的效果, 让代码看起来比较清爽,也体现了java的封装性。还有个原则叫迪米特法则, 就是一个对象对另一个对象有尽量少的了解,说的也是解耦合的事情。 2.里氏替换原则和依赖倒置原则,说的是继承的事情。 父类可以做的事情,子类都可以去做,子类可以尽量去依赖父类去做事情; 但是反过来,父类不能依赖子类去做一些事情。体现了java的继承特性。 3.接口隔离原则,接口也应该尽可能的隔离开来。 其实类写多了,的确耦合性低,为了让他们交流起来,用的最多的就是接口, 毕竟只需要知道做什么,怎么做,去访问那个具体的类吧。 4.开闭原则,对修改关闭,对拓展开放。 就是代码需要有很好的延展性,对原有代码结构不能破坏。 开闭原则:软件实体应当对扩展开放,对修改关闭(抽象) 里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能 依赖倒置原则(DIP)依赖倒置原则的核心就是面向抽象(抽象类或者接口)编程 单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分 接口隔离原则建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。 迪米特法则如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 合成复用原则合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。 创建型模式分为以下几种。 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 1、单例模式的优点: 单例模式可以保证内存里只有一个实例,减少了内存的开销。 可以避免对资源的多重占用。 单例模式设置全局访问点,可以优化和共享资源的访问。 2、单例模式的缺点: 单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。 在并发测试中,单例模式不利于代码调试。在调试过程中,如果单例中的代码没有执行完,也不能模拟生成一个新的对象。 单例模式的功能代码通常写在一个类中,如果功能设计不合理,则很容易违背单一职责原则。 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。 抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。 #### 参与贡献 1、https://www.sohu.com/a/326451163_120176035 2、http://c.biancheng.net/view/1335.html