当前位置: 首页 > java >正文

java进阶(一)+学习笔记

1.JAVA设计模式

1.1 什么是设计模式

设计模式是软件开发过程中前辈们在长期实践中针对重复出现的问题总结出来的最佳解决方案。这些模式不是具体的代码实现,而是经过验证的、可重用的设计思想,能够帮助开发者更高效地解决特定类型的问题。

设计模式的重要性体现在:

  • 提供了标准化的解决方案模板

  • 促进了代码重用和设计一致性

  • 提高了系统的可维护性和扩展性

  • 便于开发者之间的沟通和理解

1.2 为什么要学习设计模式

学习设计模式对开发者有多方面的好处:

  1. 提高编程思维能力:培养面向对象的设计思维,学会从更高层次思考问题

  2. 标准化设计:遵循业界认可的最佳实践,使设计更加规范化

  3. 增强代码质量

    • 提高代码复用性,减少重复代码

    • 增强系统可扩展性,便于未来功能添加

    • 提高灵活性,使系统更容易适应变化

  4. 提升源码阅读能力:许多优秀框架和库都使用了设计模式,理解模式有助于快速掌握其设计思想

  5. 开闭原则支持:在大型项目中添加新功能时,可以最小化对现有代码的影响

2.UML建模语言基础

统一建模语言(UML)是软件设计中用于分析和设计类与类(接口)之间关系的标准化建模语言。它通过静态图形(类图)来表达系统结构。

2.1 UML类图基本要素

  1. 类(Class)表示:

  2. 接口(Interface)表示:

  3. 完整类图示例

2.2 类之间的关系详解

1. 继承关系(Inheritance)

表示"is-a"关系,即子类是父类的一种特殊化:

  • 类继承类

  • 接口继承接口

示例:

这里Student和Teacher可能继承自一个共同的Person类,共享name等属性

2. 实现关系(Realization)

表示类实现接口的功能:

Car和Ship类都实现了Vehicle接口的move()方法,但各自实现方式不同

3. 依赖关系(Dependency)

"use-a"关系,在一个类的方法中使用另一个类,具有临时性:

Person类在call方法中临时使用了MobilePhone对象,方法结束后关系解除

4. 关联关系(Association)

"has-a"关系,一个类作为另一个类的成员变量。根据强弱可分为:

聚合关系(Aggregation)

弱关联,整体和部分可以独立存在:

即使University不存在了,Teacher仍然可以存在

组合关系(Composition)

强关联,生命周期一致,整体控制部分的生命周期:

Head和Mouth是强关联,Head不存在时Mouth也不存在

3.学习笔记 

4.拓展 

4.1 设计模式分类

设计模式通常分为三大类:

创建型模式

  • 单例模式(Singleton)

  • 工厂方法模式(Factory Method)

  • 抽象工厂模式(Abstract Factory)

  • 建造者模式(Builder)

  • 原型模式(Prototype)

结构型模式

  • 适配器模式(Adapter)

  • 装饰器模式(Decorator)

  • 代理模式(Proxy)

  • 外观模式(Facade)

  • 桥接模式(Bridge)

  • 组合模式(Composite)

  • 享元模式(Flyweight)

行为型模式

  • 策略模式(Strategy)

  • 模板方法模式(Template Method)

  • 观察者模式(Observer)

  • 迭代器模式(Iterator)

  • 责任链模式(Chain of Responsibility)

  • 命令模式(Command)

  • 备忘录模式(Memento)

  • 状态模式(State)

  • 访问者模式(Visitor)

  • 中介者模式(Mediator)

  • 解释器模式(Interpreter)

4.2 设计模式应用原则

  1. 开闭原则(OCP):对扩展开放,对修改关闭

  2. 单一职责原则(SRP):一个类只负责一个功能领域

  3. 里氏替换原则(LSP):子类必须能够替换父类

  4. 依赖倒置原则(DIP):依赖抽象而非具体实现

  5. 接口隔离原则(ISP):使用多个专用接口而非单一总接口

  6. 迪米特法则(LoD):最少知识原则,减少类间耦合

  7. 组合/聚合复用原则(CARP):优先使用组合而非继承

4.3 实际应用建议

  1. 不要过度设计:只在必要时应用设计模式

  2. 理解优于记忆:掌握模式背后的思想比记住结构更重要

  3. 灵活应用:根据实际情况调整模式实现

  4. 重构到模式:可以先实现功能,再通过重构引入模式

  5. 模式组合:复杂问题可能需要多个模式组合解决

设计模式是优秀开发者的重要工具,但并非银弹。合理运用可以显著提高代码质量,而滥用则可能导致过度设计。理解每种模式的适用场景和优缺点,才能在适当的时候做出最佳选择。

http://www.xdnf.cn/news/15189.html

相关文章:

  • 【嵌入式】51单片机学习笔记-Keil5软件安装教程
  • 【6.1.3 漫画分布式锁】
  • 算法魅力-BFS解决最短路问题
  • Android音视频探索之旅 | C++层使用OpenGL ES实现视频渲染
  • 【文献阅读】DEPTH PRO: SHARP MONOCULAR METRIC DEPTH IN LESS THAN A SECOND
  • AI:机器人行业发展现状
  • 【软件测试面试】面试了字节、美团、腾讯等30几家公司后,才知道软件测试面试全是这个套路......
  • PyVision:基于动态工具的具身智能体
  • linux学习第30天(线程同步和锁)
  • 【世纪龙科技】比亚迪新能源汽车结构原理体感教学软件
  • 从零到一:企业如何组建安全团队
  • CSS选择器进行定位
  • 医疗AI前端开发中的常见问题分析和解决方法
  • 计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)
  • 电脑上如何查看WiFi密码
  • [BUUCTF 2018]Online Tool
  • tp8.0\jwt接口安全验证
  • 什么是 Bootloader?怎么把它移植到 STM32 上?
  • 《人件》第六章 快乐地工作
  • Python-难点-uinttest
  • 秋招笔试考什么?如何针对性去练习?
  • w459客户管理系统
  • xml映射文件的方式操作mybatis
  • 多线程进阶——JUC的常见类
  • 跨系统开发代码换行符如何解决
  • docker-compose方式搭建lnmp环境——筑梦之路
  • 2025 XYD Summer Camp 7.10 筛法
  • Go语言生态成熟度分析:为何Go还无法像Java那样实现注解式框架?
  • 系统分析师-计算机系统-计算机系统概述存储系统
  • 《Java Web程序设计》实验报告二 学习使用HTML标签、表格、表单