首页 > 其他分享 >常见设计模式

常见设计模式

时间:2024-06-11 16:13:09浏览次数:23  
标签:一个 创建 常见 模式 实例 单例 设计模式

设计模式

Version1.0

1. 设计模式的类型

  1. 创建型模式
    • 提供一种在创建对象的同时隐藏创建逻辑的方式。使得程序在判断针对某个实例需要创建哪些对象时更加灵活

    • 工厂模式,单例模式,原型模式

  2. 结构型模式
    • 关注对象之间的组合和关系,旨在解决如何构建灵活且可复用的类和对象结构

    • 适配器模式,组合模式,桥接模式

  3. 行为型模式
    • 关注对象之间的通信和交互,旨在解决对象之间的责任分配和算法的封装

    • 责任链模式,命令模式,策略模式

2. 创建型模式

单例模式

--单例模式是一种创建型模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。

意图

确保一个类只有一个实例,并提供一个全局访问点来访问该问题实例

主要解决

频繁创建和销毁全局使用的类实例问题

关键代码

构造函数是私有的

实例

  • 一个班级只有一个班主任

  • 设备管理器设计为单例模式,例如两台打印机,避免同时打印同一份文件

  • Windows在多进程多线程环境下操作文件时,避免多个进程或线程操作一个文件,需要通过唯一实例进行处理

优点

  • 内存中只有一个实例,减少内存开销。尤其是频繁创建和销毁实例时

  • 避免资源的多重占用

缺点

  • 没有接口,不能继承
  • 与单一职责原则冲突,一个类应该只关系内部逻辑,而不关注实例方式

使用场景

  • 生成唯一序列号

  • WEB中的计数器,避免每次刷新都在数据库中增加记数,先缓存起来

标签:一个,创建,常见,模式,实例,单例,设计模式
From: https://www.cnblogs.com/data101/p/18242227

相关文章

  • Windows共享文件夹常见问题解决方法
    目录你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问允许自己电脑去访问局域网其他电脑的共享文件允许局域网内别人电脑访问自己电脑的共享文件你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问参考:https://blog.csdn.net/qq28574......
  • c/c++ 设计模式-----职责链(Chain Of Responsibility)模式
    一个关于涨薪审批的范例#include<iostream>#ifdef_DEBUG//只在Debug(调试)模式下#ifndefDEBUG_NEW#defineDEBUG_NEWnew(_NORMAL_BLOCK,__FILE__,__LINE__)//重新定义new运算符#definenewDEBUG_NEW#endif#endif//#include<boost/type_index.hpp>usingnames......
  • c/c++设计模式---策略模式
    一个具体范例的逐步重构Fighter.h#ifndef__RIGHTER__#define__RIGHTER__////增加补充生命值道具(药品)//enumItemAddlife//{//LF_BXD,//补血丹//LF_DHD,//大还丹//LF_SHD,//守护丹//};classItemStrategy;//类前向声明//战斗者父类class......
  • c/c++设计模式---状态模式
    一个基本的状态转换范例monster.h#ifndef_MONSTER__#define_MONSTER__classMonsterStatus;//类前向声明//怪物类classMonster{public:Monster(intlife);~Monster();public:intGetLife()//获取怪物血量{returnm_life;}......
  • 代理设计模式之JDK动态代理&CGLIB动态代理原理与源码剖析
    代理设计模式代理模式(Proxy),为其它对象提供一种代理以控制对这个对象的访问。如下图从上面的类图可以看出,通过代理模式,客户端访问接口时的实例实际上是Proxy对象,Proxy对象持有RealSubject的引用,这样一来Proxy在可以在实际执行RealSubject前后做一些操作,相当于是对RealSubject......
  • 描述常见的Java安全漏洞和防范措施
    常见的Java安全漏洞及其防范措施可以归纳如下:一、常见的Java安全漏洞跨站脚本攻击(XSS)漏洞描述:攻击者通过在网页中插入恶意脚本来获取用户的敏感信息或执行恶意操作。防范措施:输入验证和过滤:对用户输入的数据进行严格验证和过滤,剔除恶意脚本。输出转义:在将用户数据输出......
  • Java设计模式
    行为设计模式观察者模式定义观察者是一种行为设计模式,观察者模式通常由两个对象组成:观察者(事件和发布器)和被观察者(监听器)。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应,所以也被称作“发布-订阅模式”。特点优点:降耦:观察者和被观察者......
  • 23种设计模式之代理模式
    代理模式1、概念代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问代理模式是常用的结构型设计模式之一,在JavaRMI、WebService、SpringAOP等技术和框架中都使用了代理模式2、代理模式结构Subject(抽象主题角色):它声明了真实主题和代理主题的......
  • 【设计模式】结构型-桥接模式
    当抽象与实现,各自独立,桥接模式,如彩虹桥,连接两岸。文章目录一、类爆炸与代码重复二、桥接模式三、桥接模式的核心组成四、运用桥接模式五、桥接模式的应用场景六、小结推荐阅读一、类爆炸与代码重复场景假设:假设我们正在设计一个模拟城市交通的系统。在这个系统中,......
  • C&C++内存管理【new和delete操作符的详细分析】【常见面试题】
    C/C++内存管理1.C/C++内存分布我们先来看一段代码,来了解一下C/C++中的数据内存分布。#include<stdlib.h>intglobalVar=1;staticintstaticGlobalVar=1;//比globalVar还要先销毁,同一个文件下后定义的先析构//全局变量存在数据段(静态区)但是链接方式和静......