工厂模式(设计模式) 2024-06-14 java, 前端, 数据库, 设计模式, 开发语言 85人 已看 抽象工厂模式提供一个接口,用于创建一系列相关或互相依赖的对象,而无需指定它们具体的类。抽象工厂(AbstractFactory):声明创建一组产品的方法,每个方法对应一个产品。具体工厂(ConcreteFactory):实现抽象工厂中的方法,生成具体的产品对象。抽象产品(AbstractProduct):为每种产品声明接口。具体产品(ConcreteProduct):实现抽象产品接口的具体类。假设我们有两个产品族:ProductA 和 ProductB,每个产品族有两个版本。
常用的设计模式 2024-06-17 设计模式 68人 已看 (始终使用同一个对象)饿汉式/懒汉式DCL. synchronized. volatile(多线程可见性,不保原子性禁止指令重排):沿着执行链执行同一请求.直至执行链完成.应用:Spring MVC/Gateway/Spring Security。深拷贝可以用于创建对象,但这并不是原型模式的唯一实现方式),:喂猫吃鱼.根据所监听对象变化.其被依赖对象进行对应处理.例:监听器机制.(复制基本类型的属性,引用类型采用的是复制指向这些对象的内存地址):下单接口.根据前端所传type.动态执行对应类。
设计模式-原型模式 2024-06-13 原型模式, 设计模式 110人 已看 因此,使用Obiect.clone()方法只能浅层次的克隆,即只能对那些成员变量是基本类型或String类型的对象进行克隆,对那些成员变量是类类型的对象进行克隆要使用到对象的序列化,不然克降出来的 Prototype 对象都共享同一个 obj 实例。用面向对象的方法来说就是,我们先建立一个原型,然后通过对原型进行复制和修饰的方法,就可以产生一个与原型相似的新对象。从以上的使用可以看出,在Java中Prototype 模式变成 clone()方法的使用,此方法执行的是该对象的“浅复制”,而不“深复制”操作。
【设计模式】行为型设计模式之 迭代器模式 2024-06-10 算法, 迭代器模式, 设计模式 94人 已看 是行为设计模式之一,它提供了一种访问集合对象(如列表、数组或其他集合结构)中元素的方式,而不需要暴露集合的内部结构。迭代器模式定义了一个迭代器接口,该接口负责遍历集合中的元素,这样用户就可以通过迭代器来访问集合的元素,而无需了解集合的具体实现。一个完整的迭代器模式包含集合和迭代器两部分内容,集合又分为集合接口和实现类、迭代器分为迭代器实现类和接口。
设计模式-代理模式 2024-06-14 代理模式, 设计模式 112人 已看 在对已有的方法进行使用的时候需要对原有方法进行改进或者修改,这时候有两种改进选择:修改原有方法来适应现在的使用方式,或者使用一个“第三者”方法来调用原有的方法,并且对方法产生的结果进行一定的控制。上面的代码表面上看很复杂,但它的作用其实很简单,就是告诉 DynamicProxy 类用一个指定的类加载器来动态创建一个对象,该对象要实现指定的接口(本例为Soucable),并用提供的InvocationHandler来代替传统的方法主体。代理模式中的代理者就好比中介机构,它提供了对被代理对象的一切事物。
设计模式-命令模式 2024-06-11 命令模式, 设计模式 100人 已看 在 JavaScript 中,命令模式是一种行为设计模式,它将请求封装为一个对象,从而允许你用不同的请求、队列或者日志来参数化其他对象,支持可撤销的操作。命令模式的核心思想是将请求的发送者和接收者解耦,使得发送者不需要知道具体的接收者是谁以及具体的操作是什么。JavaScript 中的命令模式通过将请求封装为对象,实现了请求发送者与接收者的解耦。这种模式非常适合需要对操作进行参数化、排队执行或支持撤销和重做功能的场景。通过命令对象的抽象,系统可以灵活地扩展和维护,增强了代码的可读性和可。
设计模式-代理模式Proxy(结构型) 2024-06-11 代理模式, 设计模式 133人 已看 可以发现代理类只能代理实现Pay接口的类,不够灵活。开发过程中,经常会有日志、事务等的操作是不区分业务逻辑的,可以使用动态代理。代理模式和装饰模式非常相似,只是在语义上不一样。
【总结】项目中用过的设计模式 2024-06-12 设计模式 64人 已看 当需要创建的对象具有相似的接口,但具体实现可能不同时,可以使用工厂模式。例如,日志记录器、数据库访问等。:当频繁使用同一个对象,如配置信息、数据库连接池、线程池等时,使用单例模式可以避免重复创建对象,节省资源。落地页的处理: h5、js、deeplink、callback。1.单例模式(饿汉式 、懒汉式)
UML与设计模式 2024-06-15 uml, 设计模式 71人 已看 节点是应用程序的部署单元。组合关系是用一条带实心菱形箭头的直线表示的,组合关系用于类图,特别用于表示实体对象关系,表达整体拥有部分的语义,组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也将消亡。例如在分析一个商业过程的时候,对象的规模(粒度)大到如银行、工厂、商场的程度,不论它有多么巨大,只要我们认为它是对象,它与其他对象交互时就是一个整体,不能分割。换言之,通过一个场景,我们仅能得到对象的一个侧面的信息,如图2.4所示,如果以每一个场景为坐标(维度),那么对象实例就是对象在该坐标上的投影。
【设计模式之代理模式 -- C++】 2024-06-07 c++, 代理模式, 设计模式, 开发语言 100人 已看 大白话就是:首先定义一个抽线角色用于作为代理和真实的几类;在代理角色类中会定义一个真实类的对象;在代理类中,在相应的方法中调用真实类对象下的方法;代理者可以作任何东西的接口:网上连接、存储器中的大对象、文件或其它昂贵或无法复制的资源。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。抽象角色:通过接口或抽象类声明真实角色实现的业务方法。1.用资源较小的对象代理资源消耗大的对象;
Java常用的设计模式,如单例模式、工厂模式、观察者模式等 2024-06-13 java, 观察者模式, 单例模式, javascript, 设计模式 143人 已看 单例模式确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。这在需要全局共享资源时非常有用,例如数据库连接池、配置管理器等。工厂模式通过创建一个工厂类来处理对象的创建,提供了一种将实例化逻辑与使用逻辑分离的方式。常见的工厂模式有简单工厂模式、工厂方法模式和抽象工厂模式。这种方法提供了创建一系列相关或依赖对象的接口,而无需指定它们的具体类。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象发生变化时,它会通知所有观察者,使它们能够自动更新。
设计模式-中介者(调停者)模式(行为型) 2024-06-08 windows, 设计模式 87人 已看 在学习中介者模式的时候一直疑惑,为什么要有中介者接口?学习完后感悟:设计模式是一种思想,不应该去套公式。中介者模式的核心思想就是通过对象引用的方式实现多个同事类通过一个中介者建立联系,可以中介者中引用同事类,也可以同时类引用中介者,甚至可以用一个不用中介者接口,直接定义具体中介者实现。具体怎么实现要根据具体情况而论。设计模式是一种思想,而不是一种公式模板。
【设计模式】观察者模式(行为型)⭐⭐⭐ 2024-06-05 java, 观察者模式, 设计模式, 开发语言 100人 已看 观察者模式(Observer Pattern)是一种行为型设计模式,它允许对象在状态改变时通知多个观察者对象。可以用于mqtt的订阅消息后,根据观察者模式触发获取接收消息并设置相关业务代码。观察者模式包含以下主要角色:主题(Subject):主题是通知者,它知道观察者,提供注册和删除观察者对象的接口。观察者(Observer):观察者是接收通知的对象,它实现了更新接口以接收主题的状态。具体主题。
2024050401-重学 Java 设计模式《实战代理模式》 2024-06-05 java, 代理模式, 设计模式, 开发语言 105人 已看 代理模式有点像老大和小弟,也有点像分销商。主要解决的是问题是为某些资源的访问、对象的类的易用操作上提供方便使用的代理服务。而这种设计思想的模式经常会出现在我们的系统中,或者你用到过的组件中,它们都提供给你一种非常简单易用的方式控制原本你需要编写很多代码的进行使用的服务类。类似这样的场景可以想到;你的数据库访问层面经常会提供一个较为基础的应用,以此来减少应用服务扩容时不至于数据库连接数暴增。使用过的一些中间件例如;
设计模式之命令模式 2024-06-05 命令模式, 设计模式 83人 已看 命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,从而让你可以用不同的请求对客户进行参数化,队列化请求或者记录请求日志,以及支持可撤销的操作。命令接口(Command Interface):定义执行操作的接口。具体命令(Concrete Command):实现命令接口,负责具体的业务逻辑处理。接收者(Receiver):真正执行操作的类,包含业务逻辑方法。调用者(Invoker):持有命令对象,并调用其execute方法来执行命令。