设计模式
文章平均质量分 73
学习笔记
https://www.bilibili.com/video/BV1G4411c7N4?p=59
F_aF_a
这个作者很懒,什么都没留下…
展开
-
⑥桥接模式
文章目录传统桥接模式案例改进JDBC中的桥接模式注意事项和细节桥接模式其它应用场景 传统 传统方案解决手机操作问题分析 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式), 就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。 违反了单–职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样增加了代码维护成本. 解决方案:使用桥接模式 桥接模式 基本介绍 桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。 .原创 2022-03-31 19:28:22 · 256 阅读 · 0 评论 -
⑦装饰者模式
文章目录初步想法想法2装饰者模式改进星巴克装饰者模式在JDK应用的源码分析 初步想法 想法2 装饰者模式 定义 装饰者模式: 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp) 这里提到的动态的将新功能附加到对象和ocp原则,在后面的应用实例上会以代码的形式体现,请同学们注意体会。 改进星巴克 Drink.java public abstract class Drink { public String des; priv.原创 2022-03-31 21:33:55 · 409 阅读 · 1 评论 -
⑤适配器模式
文章目录基本介绍工作原理类适配器类适配器模式介绍类适配器模式注意事项和细节对象适配器模式接口适配器模式SpringMVC中的适配器模式适配器模式的注意事项和细节 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper) 适配器模式属于结构型模式 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式 工作原理 适配器模式:将一个类的接口转换成另一种接口原创 2022-03-29 19:57:08 · 298 阅读 · 0 评论 -
④建造者模式
盖房项目需求 需要建房子:这一过程为打桩、砌墙、封顶 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是 要求不要相同的. 请编写程序,完成需求. 原始 AbstractHouse.java public abstract class AbstractHouse { //打地基 public abstract void buildBasic(); //糊墙 public abstract void buildWalls(); //封顶原创 2022-03-29 13:44:35 · 256 阅读 · 0 评论 -
③原型模式
●克隆羊问题 现在有一只羊tom, 姓名为: tom,年龄为: 1, 颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。 文章目录原始想法原型模式基本介绍UML类图代码Spring中的原型模式深拷贝&浅拷贝浅拷贝深拷贝方式1:重写clone方法方式2:通过对象序列化 原始想法 Sheep.java public class Sheep { private String name; private int age; private String color;原创 2022-03-28 14:57:34 · 834 阅读 · 0 评论 -
②工厂模式
文章目录简单工厂模式披萨案例想法用简单工厂模式改进工厂方法模式工厂方法模式介绍应用案例抽象工厂模式以抽象工厂模式完成披萨项目JDK源码中的工厂模式小结 简单工厂模式 披萨案例 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(比如GreekPizz、 CheesePizz 等) 披萨的制作有prepare, bake, cut, box 完成披萨店订购功能。 想法 Pizza.java public abstract class Pizza { protected Stri原创 2022-03-27 21:11:15 · 723 阅读 · 0 评论 -
①单例设计模式
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供二个取得其对象实例的方法。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下, 一个项目通常只需要-一个SessionFactory就够,这是就会使用到单例模式。 单例模式有八种方式: 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 懒汉式(原创 2022-03-26 21:52:53 · 72 阅读 · 0 评论 -
设计模式概述和分类
文章目录分类 掌握设计模式的层次 第1层:刚开始学编程不久,听说过什么是设计模式 第2层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道 第3层:学习过了设计模式,发现自己已经在使用了,并且发现了些新的模式挺好用的 第4层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处。 第5层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。 设计模式介绍 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,原创 2022-03-26 20:47:19 · 658 阅读 · 0 评论 -
UML类图
UML-- Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 UML本身是一套符号的规定,就像数学符号和化学符号-样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等 使用JML来建模,常用的工具有RationalRose,也可以使用一些插件来建模 文章目录分类UML类图依赖泛化实现关联聚合组合 分类 画UML图与写文章差不多,..原创 2022-03-25 17:17:27 · 384 阅读 · 0 评论 -
设计模式常用的七大原则之⑦【合成复用原则】
概念 原则是尽量使用合成、聚合的方式,而不是使用继承 核心思想 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 针对接口编程,而不是针对实现编程。 为了交互对象之间的松耦合设计而努力 继承: 聚合:B有个A类型的属性a 依赖:B有个方法的参数是A类型的变量,通过set方法设置 组合:B对象在创建的时候,就会new一个A出来 ...原创 2022-03-25 16:01:42 · 366 阅读 · 0 评论 -
设计模式常用的七大原则之⑥【迪米特原则】
概念 一个对象应该对其他对象保持最少的了解 类与类关系越密切,耦合度越大 迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public方法,不对外泄露任何信息 迪米特法则还有个更简单的定义:只与直接的朋友通信 直接的朋友:每个对象都会与其他对象由耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖,关联,组合,聚合等。其中,我们称出原创 2022-03-25 15:43:51 · 82 阅读 · 0 评论 -
设计模式常用的七大原则之⑤【开闭原则】
文章目录概念案例原始代码改进 概念 基本介绍 开闭原则(Open Closed Principle) 是编程中最基础、最重要的设计原则 一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。 案例 原始代码 package com.ABC.principle.ocp; public cla原创 2022-03-24 13:30:12 · 416 阅读 · 0 评论 -
设计模式常用的七大原则之④【里氏替换】原则
OO中的继承性的思考和说明 继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。 继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障 问题提出:在编程中,如何正确的使用继承? =&原创 2022-03-24 09:34:38 · 101 阅读 · 0 评论 -
设计模式常用的七大原则之③【依赖倒转】原则
文章目录概念案例代码1.0解决思路依赖关系传递的三种方式和应用案例接口传递构造方法传递set传递依赖倒转原则的注意事项和细节 概念 案例 编程完成Person类发送消息的功能 代码1.0 package com.ABC.principle.inversion; public class DependecyInversion { public static void main(String[] args) { } } class Email{ public String get原创 2022-03-24 08:57:17 · 293 阅读 · 0 评论 -
设计模式常用的七大原则之②【接口隔离原则】
文章目录问题引入代码1.0改进类图接口隔离原则 问题引入 A通过接口使用B的方法1 2 3 C通过接口使用D的方法1 4 5 代码1.0 先把原问题的代码写出来 package com.ABC.principle.segregation; public class Segregation1 { public static void main(String[] args) { } } interface Interface1 { void operation1();原创 2022-03-23 21:19:53 · 179 阅读 · 0 评论