设计模式总结

朱雀 2022-03-22 12:46 329阅读 0赞

从18年10月份开始学习设计模式,到19年1月底才看完,这篇博文主要总结这个过程中我的收获和一些思考。

我的收获

  • 从刚开始接触Java就听说过设计模式,但是由于自己的能力有限,又觉得设计模式是一个很高大上的东西,所以一直都没有碰,这次有幸系统的学习了一遍设计模式。
  • 在开发之前开始思考如何设计更合理了。可能在这之前并没有想过太多的设计相关的东西,只是想着快速实现并且不出现bug,并没有想着怎样设计才是更合理一点。
  • 开始考虑系统的可扩展性了,毕竟总会改变。
  • 在遇到问题后开始想有那个设计模式会适用这个场景。
  • 对面向对象有了更深一步的了解。

面向对象的三大特性

  • 封装(Encapsulation)
    隐藏对象的具体实现细节,通过共有方法暴露对象的功能。内部结构可以自由修改,同时可对成员进行更加精确的控制 (比如在setter方法中加值合法判断)
  • 继承(Inheritance)
    使用已经存在的类作为基础类(父类),在此基础上建立新类(子类),子类既可复用父类的功能,也能进行扩展,从而实现代码复用。 另外Java是单继承的,可以通过接口和内部类实现多继承。但是有几点需要注意一下:

    • 子类拥有父类非private的属性与方法
    • 构造方法只能调用,不能实现,子类默认调用父类的无参构造方法,
      如果父类没有无参的构造方法,需要使用super显式调用!
    • 慎用继承,要考虑是否需要从子类向父类进行向上转型!(转型要instanceof)
  • 多态(Polymorphism)
    一个类实例的相同方法在不同的情形下有不同的表现形式。多态分为两种:方法重载和重写(主要描述父类和子类之前的多态)。

类与类间的关系

  • 继承,实现,依赖,关联,聚合,组合
  • 类的相关程度:继承 < 实现 < 依赖 < 关联 < 聚合 < 组合
  • 依次的UML类图标记

    • 继承
      在这里插入图片描述
    • 实现
      在这里插入图片描述
    • 依赖
      在这里插入图片描述
    • 关联
      在这里插入图片描述
    • 聚合
      在这里插入图片描述
    • 组合
      在这里插入图片描述

设计模式的六大原则

  • 单一职责原则
    每一个类应该专注于做一件事情。 即:高内聚,低耦合。
  • 里氏替换原则
    在任何父类出现的地方都可以用它的子类来替代。
  • 依赖倒置原则
    要依赖于抽象,不要依赖于具体实现。
  • 接口隔离原则
    应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。
  • 迪米特法则
    一个对象应当尽量少地与其他对象之间发生相互作用,使得系统功能模块相对独立。
  • 开闭原则
    一个对象对扩展开放,对修改关闭。即:对类的改动是通过增加代码进行的,而不是修改现有代码。

设计模式逐一攻破

  • 设计模式专栏
  • github

永远不要对学习失去兴趣。

发表评论

表情:
评论列表 (有 0 条评论,329人围观)

还没有评论,来说两句吧...

相关阅读

    相关 设计模式总结

    设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接

    相关 设计模式总结

    1.简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现 2.策略模式:定义一系列的

    相关 设计模式总结

    终于完完整整的把设计模式又看了一遍,这几天一直计划要写一篇总结,无奈总被这样或那样的事情打断…再消化一下,回头来把欠的债给还了。 设计模式的分类 总体来说设计模式分为三

    相关 设计模式总结

    设计模式 什么是设计模式 什么时候使用设计模式 设计模式六大原则 常见设计模式 什么是设计模式 设计模式是软件开发人员在软件开发过程中面临

    相关 设计模式总结

    建造型模式: 简单工厂:常用,通过enum查找对象,调用其方法使用; 抽象工厂:未曾使用,多个工厂被封装在抽象工厂,挺复杂的; 单例:管理常用 建造者:需要生成的对象具

    相关 设计模式总结

    从七月份开始一直到九月底才看完设计模式,在这个过程中我不敢说我已经掌握了那本书里面的内容,或者说1/5,没能力说也没有资格说。但是结果不重要,重要的是这个过程我的收获!主要包括

    相关 设计模式总结

    从18年10月份开始学习设计模式,到19年1月底才看完,这篇博文主要总结这个过程中我的收获和一些思考。 我的收获 从刚开始接触Java就听说过设计模式,但是由于自己的