设计模式思想

news/2024/10/31 5:35:22/

单例模式
懒汉式 线程安全、double check 加锁优化(双重检查)、
jit(编译器)、cpu有可能回对指令重新排序、导致使用未初始化实例、可以通过volatile(wo tai ao)进行修饰,可以防止指令重排
饿汉式
类加载 初始化完成 jvm类加载机制,保证实例唯一性;
加载二进制数据到内存,生成class数据结构
验证、类静态变量赋默认值
使用类的时候,触发初始化
静态内部类
利用类加载保证线程安全
实际使用,触发类的初始化,懒汉式
工厂模式
开闭原则 创建者与产品解耦 单一职责原则
抽象工厂模式
一些列工厂组成抽工厂模式
不同系列产品,可以使用抽象工厂
产品兼容、产品客户端代码非紧密耦合、开闭原则、 单一职责原则
建造器模式
生成对象负责内部结构
独立、易扩展、克控制细节风险
原型模式
不耦合具体类下克隆对象 、避免重复初始化代码、方便构建复杂对象
享元模式
共享资源 不可变对象 intger string Long 属于享元模式
门面模式(佛萨斯)
调用复杂业务时使用 优化客户端调用、经典应用 httprequestFacade
适配器模式
类适配器 继承
对象适配器 组合形式
使用现有类、与自身代码不兼容 使用适配器 典型例子:电压转换
符合单一原则 开闭原则
装饰者模式
在不改变原有对象基础上,将功能赋值到对象上;
扩展一个类的功能或者给类附加职责
不修改原有对象给下一个对象扩展功能、灵活组合相对的业务的功能,符合开闭原则
策略模式
定义算法组、分别封装起来,可以互相转换;此模式的变化独立于算法使用者
模板模式
定义操作算法框架、将步骤延迟到子类中,使得子类可以重定义算法中某些步骤
观察者模式
定义对象 1对多的依赖,让多个观察者监听某一个主题对象,当对象发送变化时,依赖者收到通知进行业务变更
符合开闭原则、运行时建立对象之间的关系


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

相关文章

Android应用程序架构分析和基本语法

文章目录 一、控制层与表现层二、Android程序的组成结构三、Android语法基础数据类型与转换转义字符类与对象接口 一、控制层与表现层 在Android应用程序中,逻辑控制层与表现层是分开的设计的。逻辑控制层由Java应用程序实现,表现层由XML文档描述&#…

CentOS 8.5和CentOS8.4安装-解决Error setting up base repository问题

CentOS 8 内核采用了python3.6,而CentOS 7还是python2.7,对于想要用GPU服务器进行机器学习方面的工作,还是用python3.6的内核更好些。 CentOS 8 的新特性 DNF 成为了默认的软件包管理器,同时 yum 仍然是可用的 使用网络管理器( nmcli 和 nmtui)进行网络配置,移除了网络脚…

Python3 模块

Python 3中的模块是可重用的代码单元,可以被导入到其他Python程序中以供使用。模块允许您将相关的函数、类和变量组织在一起,以便更好地管理和组织代码。 下面是Python 3中常用的一些模块: 1. math:提供了对数学运算的支持&…

13 张图,带你深入理解Synchronized,吊打所有大厂面试官

前言 分享一篇优质文章给你。 本文带读者们由浅入深理解Synchronized,让读者们也能与面试官疯狂对线,同时写出高性能的代码和架构。 在并发编程中Synchronized一直都是元老级的角色,Jdk 1.6以前大家都称呼它为重量级锁,相对于J…

新冠又临“涨潮”期,看我AI显身手

#疫情#北京时间5月24日,北京市卫生健康委发布2023年第20周疫情周报。报告显示,2023年第20周全市共报告法定传染病14种25544例,死亡1例。报告病例数居前5位的病种依次为:新型冠状病毒感染、其它感染性腹泻病、流行性感冒、肺结核和病毒性肝炎&…

不愧是字节出来的,太厉害了...

前段时间公司缺人,也面了许多测试,一开始瞄准的就是中级水准,当然也没指望能来大牛,提供的薪资在15-20k这个范围,来面试的人有很多,但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

MySQL学习指南笔记经典案例句

作者:BSXY_19计科_陈永跃 BSXY_信息学院 注:未经允许禁止转发任何内容 该文章是一篇关于MySQL的一个学习的笔记或是指南,该文章中有很多的经典的案例可进行相应的练习和参考,后期的话会持续更新关于数据库系统方面的文章。 MySQL学…

day04 mybatis 核心

对象关系分类 泛化关系,实现关系,依赖关系,关联关系,聚合关系,组合关系 使用最多的就是关联关系 单向多对一保存的关系 例子:保存一个部门和两个员工,两个员工属于这个部门 所以需要在员工里面有一个部门的属性 创建员工和部门两个实体类 public class Employee { priva…