设计模式Java向

设计原则:

开闭原则:

用例对象和提供抽象功能进行分割,用例不变,抽象功能被实现,用于不断的扩展,于是源代码不需要进行修改,只在原有基础上进行抽象功能的实现从而进行代码扩展。不变源于代码,扩展功能

里氏代换原则:

  • 继承父类,尽量不重写父类方法,
  • 父类可以出现的地方,子类必须也可以放入,并且不会出现问题
  • 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

依赖倒置原则(更进一步的开闭原则):

  • 都和抽象类发生关系,不和实现类这种具体的东西发生关系
  • 依赖关系不应是具体类,应当是抽象类,即当前创建实例时,应该父指向子的创建方式,多态
  • 高层模块不应该依赖低层模块,两者都应该依赖其抽象
  • 抽象不应该依赖细节
  • 细节应该依赖抽象
    摘自: 依赖倒置原则

接口隔离原则:

  • 将一个对象的多个职能分隔开来,职能作为对象存在,被调用时可以因地制宜
  • 其实,这样也有一个弊端,接口太细致,接口数据会过于繁杂

迪米特原则:

只和朋友交流:只知道另一个类,至于另一个类具体是干嘛的,不需要知道
只与类中的成员变量对象,方法中的形参(当创建一个对象类型的参数),类的方法中所创建的对象发生关系
在这里插入图片描述

合成复用原则:

多解耦,不要写死
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/312138.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

x-cmd-pkg | deno - 更快更强的 JS 和 TS 运行时

目录 简介首次用户技术特点进一步阅读 简介 Deno 是一个基于 V8 引擎和 Rust 语言构建的 JavaScript 和 TypeScript 运行时环境,于 2018 年由 Ryan Dahl 在演讲中宣布,并在 2020 年正式发布 1.0,目标是提供一个高效且安全的脚本环境。 安全…

typora的笔记丢失了怎么办?

突然打开电脑发现原本保存的typora的笔记全部不见了,头痛…… 解决方法:点击typora中的文件,选择偏好设置,点击[恢复未保存的草稿],然后可以在文件夹中找到最后一次保存该文件的版本。 自己又将自动保存勾选上了&…

数据结构学习 Leetcode322 零钱兑换

关键词:动态规划 完全背包 记忆化搜索 一个套路: 01背包:空间优化之后dp【target1】,遍历的时候要逆序遍历完全背包:空间优化之后dp【target1】,遍历的时候要正序遍历 题目: 方法一&#xff…

大数据 - 大数据入门第一篇 | 关于大数据你了解多少?

🐶1.1 概述 大数据(BigData):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 大数据主要解决、海量数据的采…

VMware安装RHEL9.0版本Linux系统

最近在学习Linux,安装了Red Hat Enterprise Linux 的 9.0版本,简称RHEL9.0。RHEL9.0是Red Hat公司发布的面向企业用户的Linux操作系统的最新版本。我把它安装在虚拟机VMware里来减少电脑性能占用,也防止系统炸搞得我后面要重装。安装RHEL9.0还…

简单的springboot项目

传参方式 URL 传参 URL 传参的两种常见方式是通过查询参数和路径参数。 查询参数: 查询参数是通过在 URL 后面使用 ? 字符,然后以 keyvalue 的形式添加到 URL 中。多个查询参数之间使用 & 符号分隔。例如:https://example.com/api?…

[每周一更]-(第40期):GIT更换远程仓库地址

方法一 通过命令直接修改远程地址 进入git_test根目录 git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址 git remote set-url origin https://git.dev.tencent.com/ifanatic/2H.git方法二 通过命令先删除再添加远程仓库 1.进入git_test根目录 2…

推荐:一个不错的介绍Apache Doris的PPT

原来Apache Doris居然是百度开源出来的,不错。部分节选:完整下载地址网盘: 链接: https://pan.baidu.com/s/18WR70R_f72GxCjh0lykStQ 提取码: umd3 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v7的分…

鸿蒙 DevEco Studio 3.1 入门指南

本文主要记录开发者入门,从软件安装到项目运行,以及后续的学习 1,配置开发环境 1.1 下载安装包 官网下载链接 点击立即下载找到对应版版本 下载完成,按照提示默认安装即可 1.2 下载SDK及工具链 运行已安装的DevEco Studio&…

unknown variable ‘authentication_policy=mysql_native_password‘

unknown variable authentication_policymysql_native_password 背景解决尝试一尝试二(解决) 总结 背景 mac上安装多个版本数据库。我是通过dmg安装的,先装的5.7,再装的5.8,然后5.8的能正常用,5.7的启动不起来。报错信息为如下 …

【深度学习:Few-shot learning】理解深入小样本学习中的孪生网络

【深度学习:Few-shot learning】理解深入小样本学习中的孪生网络 深入理解孪生网络:架构、应用与未来展望小样本学习的诞生元学习小样本学习孪生网络的基本概念孪生网络的细节Triplet Loss架构特点关键组件训练过程主要应用领域未来展望示例图片结论 备注…

基于PHP的高校学生宿舍信息系统

有需要请加文章底部Q哦 可远程调试 基于PHP的高校学生宿舍系统 一 介绍 此学生宿舍信息系统基于原生PHP开发,数据库mysql,前端jquery.js。系统角色分为学生,辅导员和宿管员。(附带配套设计文档) 技术栈:phpmysqljquery.jsphpstu…