zoukankan      html  css  js  c++  java
  • 开发中的重点-----设计模式

    说到设计模式,要先了解设计模式的原则:

    • 总原则--开闭原则:开闭原则就是对外扩展开放,对内修改关闭,这样易于维护和升级,实现热插拔的效果。
    • 单一职责原则:即每一个类都只应该实现单一的职责。
    • 里氏替换原则:即基类可以出现的地方,子类也一定可以出现
    • 依赖倒转原则:这个是开闭原则的基础,在面向接口编程中,依赖于抽象而不依赖于具体,在写代码时用到具体的类时,是与类上级的接口交互,而不是直接与类交互。
    • 接口隔离原则:接口隔离是指每个接口不存在子类用不到却必须实现的方法。
    • 迪米特法则:一个类对自己依赖的类知道的越少越好。
    • 合并复用原则:原则上尽量使用聚合、合并的方式实现,而不是使用继承。

    了解了以上设计模式的设计原则,在去理解和学习设计模式就很简单了,在我们开发中设计模式一共23种,这里简单介绍常用的几种:

    1. 工厂模式:通过调用方法进行实例化对象,可解决对象产生过多等问题,例如spring的核心就是工厂模式
    2. 单例模式:一个类在java虚拟机中只有一个对象,并提供一个全局访问点。使对象唯一,防止性能浪费。模式结构分为懒汉式和饿汉式,一般是使用懒汉式,因为懒汉式性能优化,懒汉式在方法里面进行初始化的,下面看代码(有时候面试的时候让手写)
    //饿汉式
    public
    class HSingleton{   pravite static HSingleton hurgry = new HSingletion();   private HSingleton(){}   public static HSingleton getSingletonHurgry(){     return hurgry;   } }

    //懒汉式
    public class LSingleton{
      private static LSingleton instence = null;
      private LSingleton(){}
      public static LSingleton getInstence(){
        if(instence == null){
        instence = new LSingleton();
        }
        return instence;
      }
    }

      3.代理模式:为其他大对象提供一个代理,以控制对当前对象的访问,或者减少太大资源的消耗。例如spring AOP的实现,mybatis中的dao层,可以直接调用接口的方法,接口中的方法就是代理方法。

      4.策略模式:设计一个顶级接口,用不同的算法方法去实现相同的功能,就是策略模式。

      5.模板模式:定义一个流程,在实现某个模块功能的时候,按照这个流程开发。应用:定义一个抽象父类定义流程,或者常用的方法和常量,子类实现父类,实现具体细节方法。

      6.装饰模式:对一个对象做一些装饰,使对象具备新的功能,而且是动态的。要求装饰对象和被装饰对象实现同一个接口

    23种设计模式种以上几种比较常用,有兴趣的可以在网上了解一下其他几种:总结如下

    • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
    • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
    • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
  • 相关阅读:
    管理培训笔记
    Jhipster Registry(Eureka Server) Docker双向联通与高可用部署
    (转阮一峰)深入理解OAuth 2.0
    基于spring security 实现前后端分离项目权限控制
    spring security实现动态配置url权限的两种方法
    Spring Security 架构与源码分析
    开源APM系统skywalking介绍与使用
    Angular 中后台前端解决方案
    SpringBoot+Security+MyBatis+ES+MQ+Redis+Docker+Vue的电商系统
    Jenkins+GitLab+Docker+SpringCloud实现可持续自动化微服务
  • 原文地址:https://www.cnblogs.com/bestxyl/p/9806346.html
Copyright © 2011-2022 走看看