设计模式
文章平均质量分 87
主要记录自己的设计模式
爱敲代码的小黄
我是爱敲代码的小黄,阿里淘宝集团的Java开发工程师,CSDN博客专家,阿里云专家博主。写过的专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码系列、duubo源码系列,期待和大家一起学习,一起进步,一起对抗互联网寒冬
展开
-
【对象行为模式】二十三天学会设计模式之观察者模式
你好,我是小黄,一名独角兽企业的Java开发工程师。校招收获数十个offer,年薪均20W~40W。感谢茫茫人海中我们能够相遇,俗话说:当你的才华和能力,不足以支撑你的梦想的时候,请静下心来学习,希望优秀的你可以和我一起学习,一起努力,实现属于自己的梦想。文章目录一、什么是观察者模式?二、为什么要用观察者模式?三、如何实现观察者模式?四、总结一、什么是观察者模式?观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老.原创 2021-09-12 14:24:48 · 304 阅读 · 1 评论 -
【结构型模式】二十三天学会设计模式之装饰者模式
一、什么是装饰者模式?装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。装饰者模式动态的给当前的对象增加一些别的功能,比子类模式更加的灵活,UML图如下所示:Component:抽象构件,定义一个对象接口,可以给这些对象动态地添加职责ConreteComponent:一个具体对象,也可以原创 2021-08-26 10:09:37 · 266 阅读 · 1 评论 -
初入职场的小黄利用外观模式,直接走上会所内模的道路
一、什么是外观模式外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。外观模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。UML图如下所示:其中,Facade为外观角色,也叫门面角色,客户端可以调用这个角色,这个角色知晓子系统(SubsystemClasses1、SubsystemClasses2…)的所有功能,将客户端的请求代原创 2021-08-14 14:15:30 · 359 阅读 · 2 评论 -
二十三天学会设计模式之中介模式
一、什么是中介者模式名如其称,中介者模式类似我们在租房子的中介,中间人的意思。在Java中有 MVC 架构, C(Controller控制)是V(View视图)、M(Model模型)的中介者,在前后端的相互中起到了中间人的作用。中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式的结构图如下所示:Mediator:中介者的抽象类ConcreatMediator:中原创 2021-08-08 14:01:18 · 195 阅读 · 0 评论 -
二十三天搞懂设计模式之抽象工厂模式
你好,我是小黄,一名独角兽企业的Java开发工程师校招收获数十个offer,年薪均20W~40W感谢茫茫人海中我们能够相遇,俗话说:当你的才华和能力,不足以支撑你的梦想的时候,请静下心来学习,希望优秀的你可以和我一起学习,一起努力,实现属于自己的梦想。欢迎关注我的公众号:“爱敲代码的小黄”文章目录抽象工厂模式1. 介绍2. 实现3. 代码4. 总结抽象工厂模式1. 介绍意图:提供一个创建一系列相关或者依赖的接口,而无需指定他们具体的类何时使用:系统的产品有多于一个产品族,而系统只消费.原创 2021-07-31 14:51:39 · 239 阅读 · 0 评论 -
二十三天搞懂设计模式之工厂模式
感谢茫茫人海中我们能够相遇,俗话说:当你的才华和能力,不足以支撑你的梦想的时候,请静下心来学习,希望优秀的你可以和我一起学习,一起努力,实现属于自己的梦想。文章目录1. 定义2. 工厂模式2.1 实现2.2 第一种方式代码3. 总结1. 定义在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。单例也是一种工厂为什么有了new之后,还要有工厂灵活控制生产过程权限、修饰、日志2. 工厂模式2.1 实现我们现在有三个交通工.原创 2021-07-24 17:29:39 · 362 阅读 · 8 评论 -
初入职场的小黄不懂策略模式,差点被开除!
1. 背景小黄是一名刚毕业的大学生,初入职场,憧憬着书写优美的代码。这一天,领导找到小黄,对小黄说:小黄呀,你刚来公司,对公司业务还不是那么熟悉,这里有一个小需求,你去做一下吧。小黄回到了自己的工位上,点开了需求文档:公司新上了一批宠物,需要根据其特征进行排序,优化客户的使用体验猪:根据吃的多少排序狗:根据叫的分贝排序猫:根据体重进行排序小黄看完了需求,脸上洋溢着快乐的笑容,不知道的还以为中彩票了。小黄心想:一个简简单单的排序,这也算需求,看我把他拿下。殊不知,这一个简简单单.原创 2021-07-18 14:54:20 · 544 阅读 · 2 评论 -
二十三天搞懂设计模式之单例模式的七种写法
文章目录二十三天搞懂设计模式之单例模式的七种写法1. 介绍2. 使用场景3. 九种实现方法3.1 饿汉式 V1.03.2 饿汉式 V2.03.3 懒汉式 V1.03.4 懒汉式 V2.03.4 懒汉式测试 V3.03.5 双端检验锁(DCL,既:**double-checked locking**)3.6 静态内部类3.7 枚举4. 总结二十三天搞懂设计模式之单例模式的七种写法1. 介绍单例模式(Singletion Pattern)是 Java 中最简单的设计模式之一。这种模式涉及到一个单一的类,原创 2021-07-14 23:02:27 · 382 阅读 · 4 评论 -
设计模式——策略模式
学习了设计模式,再看看自己以前写的代码,真是无言面对江东父老~文章目录鸭子问题:传统方式解决鸭子问题分析和解决方案思路:基本介绍策略模式解决鸭子问题代码实现注意事项和细节感想鸭子问题:编写鸭子项目,具体要求如下:有各种鸭子(比如野鸭、北京鸭、水鸭等,鸭子有各种行为,比如叫、飞行等)显示鸭子的信息解决方法:传统方式解决鸭子问题分析和解决方案思路:定义一个抽象主类Duck,包含:quack()、swim()、fly()、抽象方法Display【解决每个鸭子的信息】野鸭:会飞翔、直.原创 2020-10-20 22:02:41 · 218 阅读 · 1 评论 -
C#设计模式——上
文章目录设计模式序言-四大发明之活字印刷——面向对象思想的胜利四大发明之活字印刷——面向对象思想的胜利第一章 面试受挫——代码无错就是好?第二章 代码规范、重构第三章 复制VS 复用第四章 业务的封装第五章 体会简单工厂模式的美妙设计模式序言-四大发明之活字印刷——面向对象思想的胜利四大发明之活字印刷——面向对象思想的胜利以曹操对酒当歌,人生几何的典故,引出活字印刷术。优点:要改,只需更改要改之字,此为可维护这些字并非用完这次就无用,完全可以在后来的印刷中重复使用,此乃可复用此诗若要加字,原创 2020-10-19 20:21:52 · 272 阅读 · 0 评论