• 设计模式总结


    一:一个目标

    管理变化,提高复用

    二:两种手段

     分解 VS 抽象

    三:八大原则

      (一)依赖倒置原则(DIP)
      (二)开放封闭原则(OCP)
      (三)单一职责原则(SRP)
      (四)里氏替换原则(LSP)(多态)
      (五)接口隔离原则(ISP)
      (六)优先使用对象组合,而不是类继承
      (七)封装变化点
      (八)迪米特法则:针对接口编程,而不是针对实现编程
    原则比模式更重要

    四:重构技法

    静态              ->          动态
    早绑定          ->           晚绑定
    继承             ->           组合
    编译时依赖   ->           运行时依赖
    紧耦合          ->           松耦合
    五种技法,相通

    五:从封装变化角度对模式分类

    红色圈出的:用的不多,甚至有的设计模式过时了。其他部分在工作中十分常用

    六:类图对比

    对比所有模式的类图,几乎所有模式的结构都归属到:下面第三种类型

    继承转组合,慎用继承,多用组合。其中组合是指第三种,使用指针,联系多态,间接关联,松耦合,灵活性高

    七:关注变化点和稳定点

    设计模式,一般不考虑极端情况(实际中会出现,但是不会太多),一般软件稳定性都满足状态分布

    八:什么时候不用模式

    代码可读性很差时:变量命名,函数逻辑是否清晰,类的划分是否足够清晰,模式是在这些都完成后才去使用的,而不是一开始就使用
    
    需求理解很差时:项目开始时,客户需求不理解,朦胧。先排除部分需求,一般软件第一版对设计模式并没有直接感觉
    
    变化没有显现时:不要乱用,变化没有显现就不要用
    
    不是系统的关键依赖点:不是关键结构,没必要
    
    项目没有复用价值时:以后不需要我们维护时,但是对于产品型,我们要出多个版本,我们使用设计模式后代码修改会变少,维护方便,因为需求变更而做的变化会少很多
    
    项目将要发布时:模式需要重构,一步步分析,要是因为使用模式而引入一些bug,得不偿失。

    九:经验之谈

    不要为模式而模式
    
    关注抽象类&接口(基类比子类更加有用)
    
    理清变化点和稳定点
    
    审视依赖关系
    
    要有Framework<设计模式要求更高> 和 Application 的区隔思维(分清角色,Framework留扩展点,Application使用扩展点)
    
    良好的设计是演化的结果,(不是一步到位,迭代重构而来,往往需要更多时间)

    十:设计模式成长之路(4阶段)

  • 相关阅读:
    474. 一和零 (三维01背包)
    maven打包jar将本地jar包也打进去,maven本地jar包打包(转载)
    SpringBoot构建REST服务(转载)
    springdatajpa使用枚举类
    springdatajpa将实体类的List<T>转换成String入库
    自定义hivehook(二)解析血缘转载
    java设计模式之构建者模式(二)
    springdatajpa使用日期
    springdatajpa简介(转载)
    【国外框架】—— quasar项目代码结构分析
  • 原文地址:https://www.cnblogs.com/ssyfj/p/9550559.html
Copyright © 2020-2023  润新知