Java设计模式(一)

news/2024/11/8 23:13:12/

系列文章目录

单一职责原则
接口隔离原则
依赖倒转原则


文章目录

  • 系列文章目录
  • 前言
  • 一、单一职责原则
    • 1.单一职责原则注意事项和细节
  • 二、接口隔离原则
    • 1.接口隔离原则基本介绍(Interface Segregation Principle)
    • 2.应传统方法的问题和使用接口隔离原则改进
  • 三、依赖倒转原则
    • 1.依赖倒转原则基本介绍(Dependence Inversion Principle)
    • 2.依赖倒转原则的注意事项和细节
    • 3.依赖关系传递的三种方式
  • 总结


前言

柚子之前想做Java设计模式这个系列蛮久了,现在正式开启~

提示:以下是本篇文章正文内容,下面案例可供参考

一、单一职责原则

1.单一职责原则注意事项和细节

(1)降低类的复杂度,一个类只负责一项职责。
(2)提高类的可读性,可维护性
(3)降低变更引起的风险
(4)通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;
只有类中方法数量足够少,可以在方法级别保持单一职责原则

二、接口隔离原则

1.接口隔离原则基本介绍(Interface Segregation Principle)

(1)客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上
(2)如下图所示:
在这里插入图片描述
(3)类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。
(4)按接口隔离原则应当这样处理:将接口Interface1拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。
在这里插入图片描述

2.应传统方法的问题和使用接口隔离原则改进

(1)类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。
(2)将接口Interface1拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。
(3)接口Interface1中出现的方法,根据实际情况拆分为三个接口

三、依赖倒转原则

1.依赖倒转原则基本介绍(Dependence Inversion Principle)

(1)高层模块不应该依赖底层模块,二者都应该依赖其抽象
(2)抽象不应该依赖细节,细节应该依赖抽象
(3)依赖倒转(倒置)的中心思想是面向接口编程
(4)依赖倒转原则是基于这样的设计理念:相当于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在Java中,抽象指的是接口或抽象类,细节就是具体的实现类。
(5)使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。

2.依赖倒转原则的注意事项和细节

(1)低层模块尽量都要有抽象类或接口,或者两者都有,程序稳定性更好。
(2)变量的声明类型尽量是抽象类或接口,这样我们的变量引用和实际对象间,就存在一个缓冲层,利于程序扩展和优化。
(3)继承时遵循里氏替换原则

3.依赖关系传递的三种方式

(1)接口传递
(2)构造方法传递
(3)setter方式传递


总结

单一职责,保持最小化,减小耦合;接口隔离,保证接口各司其职,减小耦合;依赖倒转,面向接口编程。


╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯


http://www.ppmy.cn/news/126076.html

相关文章

PHP7 连接数据库 MySQL8.0 报错 Call to undefined function mysqli_connect() 的解决方法

前提 如题所示使用的是PHP7的版本,连接MYSQL8.0数据库遇到的问题,提供我个人的解决办法。 我的报错是:Call to undefined function mysqli_connect() 首先明确 保证PHP与MySQL可以正常使用 访问localhost:80【或者你设置的端口号】是有页面…

毫米波雷达信号处理中的通道间相干与非相干积累问题

说明 相干和非相干积累是雷达信号处理中的常用方法,这两个概念一般是用在多脉冲积累这个问题上:积累可以提高信号的SNR,从而提高检出概率。不过本文内容与脉冲积累无关,本文讨论的话题是将这两个概念(non-coherent combination、c…

真实评测 r7 3700u和i5 8265u哪个好 r73700u和i58265参数对比

i5-8265U 为四核八线程设计,处理器基本频率为 1.60 GHz,最大睿频频率 3.90 GHz,配 6 MB 三级缓存,并集成英特尔 620 超高清显卡,显卡基本频率 300 MHz,最大动态频率 1.10 GHz。 选r7 3700u还是i5 8265u这些…

联想扬天V15(i5 8265U/8GB/256GB/MX110)电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板联想扬天V15(i5 8265U/8GB/256GB/MX110) 处理器Intel 酷睿i5 8265U已驱动 内存16 GB ( KLEVV DDR4 2400MHz / 金士顿 DDR4 2400MHz )已驱动 硬盘…

达人评测 i3 1115g4和i5 8265u选哪个好

i3-1115g4处理器采用了10nm的工艺,其核心数是2核心4线程,CPU主频为3GHz,最高睿频为4.1GHz,三级缓存为6MB,热设计功耗(TDP)在12-28w范围之内,支持最大内存为64GB,支持的内存类型有DDR4 3200MHz&a…

独立游戏开发:掌握成功的五大关键技巧

无论您是刚刚起步开发自己的第一款游戏,还是已经制作了几款游戏,本篇文章中的5大独立游戏开发技巧都可以帮助您更好地设计下一款游戏。 技巧一:设立明确的目标 无论你对游戏有着什么样的概念,都应该将其还原到最基本的要素&…

ac8265网卡linux驱动,【奋威AC8265笔记本无线网卡使用总结】安装|驱动|任务管理器_摘要频道_什么值得买...

奋威AC8265笔记本无线网卡使用总结(安装|驱动|任务管理器) 安装天线时,天线颜色分灰色和黑色,先把灰色的天线安装在无线网卡Main白色的一端,黑色的AUX接黑色的天线后就大功告成了,最后装配好固态硬盘后,装上底盖并拧紧…

酷睿i5 8250u和i5 8265u差距 i58250u和i58265u区别

酷睿i5 8250u与酷睿i5 8265u的区别的有哪些 1、频率不同 最好是主频和动态频率的差别,其中主频它们的差距是0.2ghz,前者是1.6ghz,后者是1.8ghz。最高睿频上前者是3.4ghz,后者是3.9ghz。 选i5 8250u还是i5 8265u这些点很重要 http:…