随笔分类 -  设计模式

摘要:在面向对象大张旗鼓的今天,大多数人对面向过程编程嗤之以鼻,但有些场景使用过程驱动的编程思路,反而能更好地描述业务规则以及业务流程,比如前台表达的渲染链路,或是章节一中 比较重的领域服务,使用过程驱动能更好地描述数据处理的过程以及产品用例流程。 上图能力库中的能力点是我们过程驱动最核心的部分,是我们对 阅读全文
posted @ 2024-12-18 16:59 SpecialSpeculator 阅读(33) 评论(0) 推荐(0) 编辑
摘要:1.先有一个类,有一个构造函数 public abstract class AbstractMonitorAction<T> implements Action<T>{ } public class StopMonitorAction extends AbstractMonitorAction<Ch 阅读全文
posted @ 2024-08-23 10:55 SpecialSpeculator 阅读(16) 评论(0) 推荐(0) 编辑
摘要:核心不要多继承,要通过组合的模式进行组合,解耦, 非强绑定 需求 我已有一个CodingService的接口,同时有一个CodingServiceImpl的实现类,接口中定义了createReository,pullCode,pushCode三个方法,CodingServiceImpl 实现类里面进 阅读全文
posted @ 2024-03-23 10:27 SpecialSpeculator 阅读(2) 评论(0) 推荐(0) 编辑
摘要:在Java程序中实现一个状态机,你可以采用几种不同的设计模式。 1.第一版状态机 下面是一个简单的状态机实现,使用了枚举类型来表示状态,并且使用了状态模式(State Pattern)来实现状态之间的转换。 public enum ProcessState { STARTED, IN_PROGRES 阅读全文
posted @ 2024-03-13 10:51 SpecialSpeculator 阅读(52) 评论(0) 推荐(0) 编辑
摘要:中介者模式 用途: 如果多个服务经常一起使用,可以创建一个中介者服务来封装这些服务的协作。请举个例子,说明一下如何引入中介者,中介者如何帮助程序找到该使用的服务 中介者模式的例子 引入中介者模式的目的是为了降低系统中多个组件或类之间的直接交互,从而减少它们之间的耦合度。中介者充当协调者的角色,使得各 阅读全文
posted @ 2024-01-31 16:11 SpecialSpeculator 阅读(23) 评论(0) 推荐(0) 编辑
摘要:状态模式 1.按照一个营销活动的审核状态进行流转 活动编辑,审核,撤销审核,通过,拒绝,关闭,开启,活动中 模拟活动的状态的流转 2.上代码-基础定义 status.java 活动中每个状态的定义 public enum Status { // 1创建编辑、2待审核、3审核通过(任务扫描成活动中)、 阅读全文
posted @ 2023-11-16 15:41 SpecialSpeculator 阅读(18) 评论(0) 推荐(0) 编辑
摘要:访问者模式 1.说明 同一个事物的不同视角下访问信息的不同 家长视角下的老师-》教学质量怎么样 家长视角下的学生-》分数好不好 校长视角下的老师-》老没有被投诉 校长视角下的学生-》是不是三好学生 2.抽象代码结构 2.1 抽象角色,老师,学生 User.java @NoArgsConstructo 阅读全文
posted @ 2023-11-13 17:40 SpecialSpeculator 阅读(5) 评论(0) 推荐(0) 编辑
摘要:reactor模式 模型: 1.三种角色说明 reactor:派发器负责监听及分配事件,将事件分配给对应的handler acceptor:请求连接器,处理用户新过来的连接 handler:请求处理器,负责事件的处理,将自身于事件绑定 2.模型分类 单reactor单线程模型 单reactor多线程 阅读全文
posted @ 2023-10-23 21:21 SpecialSpeculator 阅读(26) 评论(0) 推荐(0) 编辑
摘要:A类里内置提供转换为B类的方法 public class UserInputDTO { private String username; private int age; public String getUsername() { return username; } public void set 阅读全文
posted @ 2023-09-18 16:27 SpecialSpeculator 阅读(6) 评论(0) 推荐(0) 编辑
摘要:# 适配器模式 核心 1. 是有一个第三方的实现类,不能修改 2. 需要外部包一层,起名Adapter结尾,并实现相关的特定业务接口 3. 内部通过不能修改的第三方实现类去执行某些动作,完成业务功能 4. 相当于是面向对象思想里封装的应用实现 ## 2个接口,普通播放器,高级播放器 普通播放器 Me 阅读全文
posted @ 2023-05-05 11:07 SpecialSpeculator 阅读(40) 评论(0) 推荐(0) 编辑
摘要:模板方法设计模式 1.说明 核心是:定义一个模板类,在模板类中规定其整体的骨架并确定哪些方法是允许子类可以去重写的,哪些是不允许子类去重写的.用来保证核心算法不被破坏. 2.修饰词说明 | 修饰词 | 使用位置 | 说明 | | | | | | final | 修饰方法 |定义那些不想被子类重写的方 阅读全文
posted @ 2023-01-27 10:44 SpecialSpeculator 阅读(27) 评论(0) 推荐(0) 编辑
摘要:装饰器模式 本质是继承了父类的新的装饰类,重写了父类的方法,前后各扩展功能,中间调用super父类方法 1.设计抽象类实现接口 public abstract class ShapeDecorator implements Shape { protected Shape decoratedShape 阅读全文
posted @ 2023-01-06 17:30 SpecialSpeculator 阅读(21) 评论(0) 推荐(0) 编辑
摘要:责任链模式 一条链路,按照顺序执行,中间出现问题,可以退出return 常用与参数校验,接入层的相关处理逻辑 固定套路 1.定义数据处理模型基类 public interface ProcessModel { } 2.抽象Context里包含数据处理模型,处理器之间传递context 使用到了泛型上 阅读全文
posted @ 2022-12-30 11:06 SpecialSpeculator 阅读(57) 评论(0) 推荐(0) 编辑
摘要:命令模式 使用场景 我反复强调,设个非常重要!因为纵使你有十八般武器,不知道什么时候用也是白搭。从定义上我们就可以看出其可以解决的问题。 当需要将各种执行的动作抽象出来,使用时通过不同的参数来决定执行哪个对象 当某个或者某些操作需要支持撤销的场景 当要对操作过程记录日志,以便后期通过日志将操作过程重 阅读全文
posted @ 2022-11-11 19:48 SpecialSpeculator 阅读(104) 评论(0) 推荐(0) 编辑
摘要:工厂模式 定义工厂类,及工厂方法,获取工厂里面的数据 @Service @Order public class RuleFactory { private static final Logger logger = LoggerFactory.getLogger(RuleFactory.class); 阅读全文
posted @ 2022-11-11 17:43 SpecialSpeculator 阅读(17) 评论(0) 推荐(0) 编辑
摘要:单例设计模式 比较常见的有spring提供的ioc,控制翻转,只需要加一个componet注解,默认注解修饰的对象就是单例的 如果自己要实现一个单例,应该是如何一个思路呢 借鉴xxl-job里面客户端的代码 功能:一个线程后台起,每隔1天去扫描一下日志文件,只保留最近的30个日志文件的功能 代码样例 阅读全文
posted @ 2022-03-31 21:50 SpecialSpeculator 阅读(44) 评论(0) 推荐(0) 编辑
摘要:1.Guarded Suspension设计模式 等待唤醒机制的规范实现 2.业务场景 用户发请求->异步消息->MQ->等MQ返回结果,结果返回浏览器 给mq发消息的线程是T1,但消费mq结果的线程不是T1,那么线程T1如何等待MQ的返回结果? 3.伪代码 class Message{ Strin 阅读全文
posted @ 2021-06-07 23:58 SpecialSpeculator 阅读(59) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示