![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 80
设计模式
爪哇缪斯
这个作者很懒,什么都没留下…
展开
-
趣解设计模式之《小王的披萨店续集》
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。原创 2023-09-30 10:15:46 · 370 阅读 · 0 评论 -
趣解设计模式之《小王的披萨店》
简单工厂简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。工厂方法模式定义了一个创建对象的接口(类或接口中的方法),但由子类决定要实例化的类是哪一个。工厂方法把实例化推迟到子类。当需要创建多种复杂类型的对象时,可以考虑使用工厂方法对对象进行归类。原创 2023-09-29 09:13:24 · 232 阅读 · 0 评论 -
趣解设计模式之《当代毕加索小王》
桥接模式将抽象部分和实现部分,分离解耦,使得两者可以独立地变化。桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立变化。桥接模式的优点1】将实现予以解耦,让它和应用之间不再永久绑定。2】抽象和实现可以独立扩展,不会影响到对方。3】对于“具体的抽象类”所做的改变,不会影响到客户。原创 2023-09-27 12:08:29 · 208 阅读 · 0 评论 -
趣解设计模式之《小王设计的疫苗管理平台系统》
享元模式/蝇量模式享元模式是池技术的重要实现方式,其定义如下:使用共享对象可以有效地支持大量的细粒度的对象。原创 2023-09-26 11:59:55 · 67 阅读 · 0 评论 -
趣解设计模式之《小王的糖果售卖机》
状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式和策略模式的区别——意图是不同的状态模式】随着时间流逝,当前状态在状态对象集合中游走改变,以反映出context内部的状态。客户对其基本不了解。它是针对具有很多条件判断的替代方案。策略模式】客户通常主动指定context索要组合的策略对象是哪一个。它是继承之外的一种弹性替代方案。原创 2023-09-23 21:45:33 · 329 阅读 · 0 评论 -
趣解设计模式之《小王与他的Apple商店》
访问者模式表示一个作用于某个对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。根据上面的小故事,我们可以看到小王的主要困扰就是针对不同的用户类型要有不同的折扣,这样随着用户类型的增多或者减少,我们都要频繁的修改电脑组件类(CPUMemory)里的if-else价格判断逻辑。那我们来思考一下,哪些是变化的?哪些是不变的呢?变化普通用户学生用户企业采购用户……不变CPUMemory……既然变化的是用户类型,那么我们何不。原创 2023-09-22 13:16:40 · 53 阅读 · 0 评论 -
趣解设计模式之《珍爱生命,远离只狼》
备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态。当你需要让对象返回之前的状态时(例如:你的用户请求“撤销”),就使用备忘录模式。原创 2023-09-21 12:47:02 · 81 阅读 · 0 评论 -
趣解设计模式之《庞大的组织架构带来的烦恼》
组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。原创 2023-09-20 12:17:57 · 74 阅读 · 0 评论 -
趣解设计模式之《会飞的橡皮鸭》
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。这里面的核心思想就是,将变化的行为抽取出来,然后采用组合的方式而非继承的方式来为目标类增加所需能力。以上面的故事为例,我们可以将fly行为、quack行为等抽取出来,分别定义为接口。然后,通过实现FlyBehavior接口或QuackBehavior接口来丰富具体飞行与叫声行为(即:算法族),然后在具体的鸭子实现类中,引入不同的飞行和叫声的子类实现,从而实现行为的多样性。原创 2023-09-19 13:20:24 · 124 阅读 · 1 评论 -
趣解设计模式之《小王的学习秘籍》
原型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。也就是说,这种不通过new关键字来产生一个对象,而是通过对象复制(Java中的clone或反序列化)来实现的模式,就叫做原型模式。原创 2023-09-18 14:12:00 · 179 阅读 · 0 评论 -
趣解设计模式之《新娘到底叫啥名啊?》
单例模式确保一个类只有一个实例,并提供一个全局访问点。通用类图。原创 2023-09-17 15:30:52 · 83 阅读 · 0 评论 -
趣解设计模式之《同学们,交作业啦!》
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。这里我们也可以采用拉的方式,因为推的方式,可能会推过来一堆我不需要的信息。那么,当有通知过来,我收到了,我自己再去拉我自己需要的内容。而不是采用你给我什么,我就接收什么。任何时候,我们都可以增加新的观察者。因为主题唯一依赖的东西是一个实现Observer接口的对象列表,所以我们可以随时增加观察者。原创 2023-09-15 15:58:55 · 62 阅读 · 0 评论 -
趣解设计模式之《小店儿菜单的故事》
迭代器模式提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。原创 2023-09-14 22:46:27 · 78 阅读 · 0 评论 -
趣解设计模式之《把意大利炮给我拿来!》
命令模式将“请求”封装成命令对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的操作。为了加深模式的理解,我们假设要设计一款多功能遥控器,这个遥控器有一排的on开关和一排的off开关,我们可以指定某个on/off开关执行某个命令,比如开灯、关灯、打开电视等等。原创 2023-09-14 00:28:51 · 74 阅读 · 0 评论 -
趣解设计模式之《怀念小时候玩的红白机嘛?》
模版方法在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。为了便于大家对以上定义的理解,我们还是以玩FC游戏机为例,看一看哪些部分是“算法骨架”,哪些部分属于“延迟到子类实现。原创 2023-09-12 10:19:23 · 85 阅读 · 0 评论 -
趣解设计模式之《为什么租房子要找中介?》
中介者模式使用中介者模式来集中相关对象之间复杂的沟通和控制方式。为了便于理解,我们再举一个系统设计上的例子。在网上售卖商城的系统中,存在三个功能,分别为采购功能销售功能和库存功能。采购功能】需要从销售功能获取到销售情况,并且确定是否要继续采购增加库存量。销售功能】要获得库存信息,并且销售量大于库存量,则需要通知采购功能快速采购商品。并且每当销售了产品后,需要扣减库存。库存功能】如果库存压力大了,要提示销售功能去折价促销,尽快消耗库存,并且通知采购功能暂时不要进行该商品的采购行为。原创 2023-09-12 10:13:46 · 60 阅读 · 0 评论 -
趣解设计模式之《办理入职这么难吗?》
门面模式/外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。原创 2023-09-10 12:51:16 · 82 阅读 · 0 评论 -
趣解设计模式之《我想吃煎饼果子了》
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。原创 2023-08-31 17:28:05 · 89 阅读 · 0 评论 -
趣解设计模式之《买了苹果笔记本的尴尬》
该模式将一个类的接口,转换成客户期望的另一个接口。适配器模式让原本接口不兼容的类可以合作无间。此时我们维护了一个员工管理系统,然后接入我们系统的第三方系统,我们都要求对方遵守我们的接口规范去开发,比如:提供方法名为的方法等等。但是,这次接入的系统已经有类似功能了,他们不希望因为两个系统的接入而重新开发新的接口,那么这对这种情况,我们就可以采用适配器模式,将接口做中间层的适配转换。原创 2023-08-31 15:22:17 · 58 阅读 · 0 评论 -
趣解设计模式之《离婚律师》
代理模式为另一个对象提供一个替身或占位符,以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制某对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。在SpringAOP中采用的JDK动态代理,就是最典型的例子。当我们想要对一个业务类进行某些横切性的增强时,例如:增加请求与响应的日志、增加权限校验、增加远程请求对象封装等等。我们可以采用代理模式去实现,而不需要修改原有的类。原创 2023-08-31 11:56:32 · 96 阅读 · 0 评论 -
趣解设计模式之《网红小王购车记》
该模式可以实现产品的封装构造过程,并允许按步骤构造产品。原创 2023-08-30 10:04:50 · 115 阅读 · 0 评论