设计模式
文章平均质量分 94
Java中的设计模式
天瑕
你今天的日积月累, 早晚会成为别人的望尘莫及;
展开
-
设计模式之策略模式
假如说现在需要实现个方法,获取订单商品的价格。因为订单类型的不同,计算价格的方式也会有所不同。//获取子单//获取子单商品//实物订单//卡券订单//会员订单case VIP:default:实物订单的商品取原价,卡券订单的商品取原价*1.1,会员订单的商品取原价*0.9。上面只是一个简单实现的demo,计算价格的代码只有一行。而如果计算订单商品价格的逻辑比较复杂的话,这个方法将会变得异常臃肿,而且也不利于扩展。原创 2023-09-27 19:44:10 · 599 阅读 · 0 评论 -
设计模式之责任链模式
“当你想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式。”1 简介通过责任链模式,你可以为某个请求创建一个对象链。每个对象依序检查此请求,并对其进行处理,或者将它传给链中的下一个对象。链中的每个对象扮演处理器,并且有一个后继对象(successor)。如果它可以处理请求,就进行处理;否则把请求转发给后继者。通过责任链模式,我们可以将一个复杂的功能拆分成多个子模块(前提是这些子模块的逻辑高度统一),每个子模块...原创 2022-05-11 16:24:28 · 347 阅读 · 0 评论 -
设计模式之装饰者模式
“动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。”继承是实现代码重用的有力手段,但它并非永远是完成这项工作的最佳工具,使用不当会导致软件变得很脆弱,同时会使子类继承打破了封装性。换句话说,子类依赖于其超类中特定功能的实现细节。超类的实现有可能会随着发行版本的不同而有所变化,如果真的发生了变化,子类可能会遭到破坏,即使它的代码完全没有改变。因而,子类必须要跟着其超类的更新而演变,除非超类是专门为了扩展而设计的,并且具有很好的文档说明。比如说现在我有一个做咖啡的需求,根据原创 2019-03-23 14:59:49 · 433 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式是一个大的概念,具体分为简单工厂、工厂方法模式和抽象工厂模式。之所以要用工厂模式,总体来说是为了不想将new对象的操作暴露给外界;也不想将创建对象的操作和操作对象的操作发生强耦合;同时最关键的是工厂模式实现了针对接口编程而不针对实现编程的原则。下面分别逐一介绍这三种模式。原创 2019-03-23 14:53:51 · 464 阅读 · 0 评论 -
设计模式之模板方法模式
“在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。”模板方法模式主要解决的是写了大量重复代码的情况。两个方法完成的功能类似,代码逻辑也相似,只是内部有些具体实现细节有差异。这种情况就适合用模板方法模式来解决。下面以《Head First 设计模式》中的具体例子来讲解该模式的使用。原创 2019-03-23 14:44:35 · 772 阅读 · 0 评论 -
设计模式之单例模式
设计模式并不是使用了多么高大上的技术,大家不用望而却步。它是前人总结出来的经验套路。以Java语言为例,大部分设计模式都只是用了oop的最简单思想:封装、多态等来实现的,上手比较简单(这也是设计模式最可贵的一点)。针对某种特定需求情况下,我用了这种设计模式,会使代码的复用性,健壮性、可维护性等得到提升。使代码朝着低耦合、高内聚的方向前进。当然,并不是说我使用了一种设计模式,就不能使用其他设计模式,设计模式之间可以搭配着使用。例如单例模式可以和工厂模式组合成为单例工厂模式(咱们所熟悉的mvc模式就是用了多原创 2019-03-23 14:36:34 · 460 阅读 · 0 评论