
设计模式
设计模式
水无痕simon
任重而道远...
展开
-
29 开源实战
剖析Spring框架中用到的经典设计模式1 Spring中工厂模式的应用原创 2023-10-27 21:57:53 · 69 阅读 · 0 评论 -
28 行为型模式-中介者模式
*** 抽象中介者**///处理同事对象注册与转发同事对象信息的方法/*** 具体中介者**/@OverrideSystem.out.println("最终中介者执行的操作,key为" + key);/*** 抽象同事类**///同事间进行交互的抽象方法/*** 具体同事类**/@OverrideSystem.out.println("=====在A同事中,通过中介者执行!");/*** 具体同事类**/@Override。原创 2023-10-27 21:56:34 · 179 阅读 · 0 评论 -
27 行为型模式-解释器模式
/用于两个整数相加的方法//用于三个整数相加的方法sum += num;上面的形式比较单一、有限,如果形式变化非常多,这就不符合要求,因为加法和减法运算,两个运算符与数值可以有无限种组合方式。原创 2023-10-27 21:49:58 · 258 阅读 · 0 评论 -
26 行为型模式-命令模式
服务员: 即调用者角色,由她来发起命令.厨师: 接收者,真正执行命令的对象.订单: 命令中包含订单/*** 订单类**///餐桌号码//存储菜名和份数/*** 厨师类 -> Receiver接收者角色**/System.out.println(num + "份, " + foodName);/*** 抽象命令接口**///统一的执行方法/*** 具体命令**///接收者对象的引用@Override。原创 2023-10-27 21:47:50 · 333 阅读 · 0 评论 -
25 行为型模式-备忘录模式
备忘录模式(memento pattern)定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态.原创 2023-10-27 21:31:32 · 193 阅读 · 0 评论 -
24 行为型模式-访问者模式
访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式。原创 2023-10-27 21:20:14 · 250 阅读 · 0 评论 -
23 行为型模式-迭代器模式
迭代器模式是我们学习一个设计时很少用到的、但编码实现时却经常使用到的行为型设计模式。在绝大多数编程语言中,迭代器已经成为一个基础的类库,直接用来遍历集合对象。在平时开发中,我们更多的是直接使用它,很少会从零去实现一个迭代器。迭代器模式(Iterator pattern)又叫游标(Cursor)模式,它的原始定义是:迭代器提供一种对容器对象中的各个元素进行访问的方法,而又不需要暴露该对象的内部细节。原创 2023-10-27 21:10:38 · 207 阅读 · 0 评论 -
22 行为型模式-状态模式
代码示例//抽象状态接口//声明抽象方法,不同具体状态类可以有不同实现。原创 2023-10-25 17:01:20 · 783 阅读 · 0 评论 -
21 行为型模式-职责链模式
责任链模式的实现非常简单,每一个具体的处理类都会保存在它之后的下一个处理类。当处理完成后,就会调用设置好的下一个处理类,直到最后一个处理类不再设置下一个处理类,这时处理链条全部完成。原创 2023-10-25 16:58:27 · 77 阅读 · 0 评论 -
20 行为型模式-策略模式
策略模式(strategy pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。原创 2023-10-25 16:53:40 · 235 阅读 · 0 评论 -
19 行为型模式-模板方法模式
模板方法模式(template method pattern)原始定义是:在操作中定义算法的框架,将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。原创 2023-10-25 16:49:46 · 145 阅读 · 0 评论 -
18 行为型模式-观察者模式
行为模式共有11种:观察者模式模板方法模式策略模式职责链模式状态模式命令模式中介者模式迭代器模式访问者模式备忘录模式解释器模式以上 11 种行为型模式,除了模板方法模式和解释器模式是类行为型模式,其他的全部属于对象行为型模式。原创 2023-10-25 16:45:21 · 338 阅读 · 0 评论 -
17 结构型模式-享元模式
抽象享元类可以是一个接口也可以是一个抽象类,作为所有享元类的公共父类, 主要作用是提高系统的可扩展性.//* 抽象享元类具体享元类具体享元类中要将内部状态和外部状态分开处理,内部状态作为具体享元类的成员变量,而外部状态通过注入的方式添加到具体享元类中./*** 可共享的-具体享元类* 注意: 在具体享元类中,需要将内部状态和外部状态分开处理.**///内部状态 : inState作为一个成员变量,同一个享元对象的内部状态是一致的./**原创 2023-10-25 16:11:30 · 274 阅读 · 0 评论 -
16结构型模式-组合模式
将对象组合成树形结构以表示整个部分的层次结构.组合模式可以让用户统一对待单个对象和对象的组合.原创 2023-10-25 14:41:53 · 245 阅读 · 0 评论 -
15 结构型模式-外观模式
/业务代码不能很好的控制客户端直接使用子系统类,如果客户端访问子系统类做太多的限制则减少了可变性和灵活性.如果设计不当,增加新的子系统可能需要修改外观类的源代码,违背了开闭原则.原创 2023-10-25 11:53:20 · 128 阅读 · 0 评论 -
14 结构性模式-适配器模式
适配器模式(adapter pattern )的原始定义是:将类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。原创 2023-10-25 10:30:54 · 192 阅读 · 0 评论 -
13 结构性模式-装饰器模式
在软件设计中,装饰器模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态的增加职责,使用对象之间的关联关系取代类之间的继承关系.原创 2023-10-25 10:14:59 · 267 阅读 · 0 评论 -
12 结构型模式-桥接模式
1 桥接模式介绍2 桥接模式原理原创 2023-10-24 17:03:36 · 224 阅读 · 0 评论 -
11 结构型模式- 代理模式
代理模式、桥接模式、装饰者模式、适配器模式、门面(外观)模式、组合模式、和享元模式。原创 2023-10-23 20:39:24 · 380 阅读 · 0 评论 -
10 创建型模式-原型模式
定义: 原型模式(Prototype Design Pattern)用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。西游记中的孙悟空 拔毛变小猴,孙悟空这种根据自己的形状复制出多个身外化身的技巧,在面向对象软件设计领域被称为原型模式.孙悟空就是原型对象.原型模式的优点原型模式缺点需要为每一个类配备一个克隆方法,而且该克隆方法位于一个类的内部,当对已有的类进行改造时需要修改源代码,违背了开闭原则.原创 2023-10-23 20:37:22 · 276 阅读 · 0 评论 -
09 创建型模式-建造者模式
建造者模式 (builder pattern), 也被称为生成器模式 , 是一种创建型设计模式定义: 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。原创 2023-10-18 22:53:13 · 713 阅读 · 0 评论 -
08 创建型模式-工厂模式
为了让我们的案例更加贴近实际开发, 这里我们来模拟一下互联网电商中促销拉新下的业务场景, 新用户注册立即参与抽奖活动 ,奖品的种类有:打折券,免费优酷会员,小礼品/*** 获奖信息实体类//用户id private Integer awardTypes;//奖品类型: 1 打折券 ,2 优酷会员 , 3 小礼品 private String awardNumber;//奖品编号 private Map < String , String > extMap;原创 2023-10-18 22:49:28 · 134 阅读 · 0 评论 -
07 创建型模式-单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模式保证某个类在运行期间,只有一个实例对外提供服务,而这个类被称为单例类。原创 2023-10-18 15:13:14 · 403 阅读 · 0 评论 -
06 迪米特法则
迪米特法则(LoD:Law of Demeter)又叫最少知识原则(LKP:LeastKnowledge Principle ),指的是一个类/模块对其他的类/模块有越少的了解越好。简言之:talk only to your immediate friends(只跟你最亲密的朋友交谈),不跟陌生人说话。原创 2023-10-18 11:05:39 · 136 阅读 · 0 评论 -
05 依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)是指在设计代码架构时,高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。原创 2023-10-18 10:17:12 · 385 阅读 · 0 评论 -
04 接口隔离原则
<代码整洁之道>>作者罗伯特 C·马丁 为 “接口隔离原则” 的定义是:客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on一个类对另一个类的依赖应该建立在最小的接口上。原创 2023-10-18 09:58:10 · 118 阅读 · 0 评论 -
03 里氏替换原则
里氏替换原则(Liskov Substitution Principle,LSP)是由麻省理工学院计算机科学系教授芭芭拉·利斯科夫于 1987 年在“面向对象技术的高峰会议”(OOPSLA)上发表的一篇论文《数据抽象和层次》(Data Abstractionand Hierarchy)里提出的.如果S是T的子类型,对于S类型的任意对象,如果将他们看作是T类型的对象,则对象的行为也理应与期望的行为一致。子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。原创 2023-10-18 09:48:18 · 221 阅读 · 0 评论 -
02 开闭原则
开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的,但对于修改是封闭的。这意味着应该用抽象定义结构,用具体实现扩展细节,以此确保软件系统开发和维护过程的可靠性。原创 2023-10-18 09:34:10 · 970 阅读 · 0 评论 -
1. 设计模式-01设计模式的介绍
1.设计模式的6/7大原则(1)单一职责原则(2)接口隔离原则(3)依赖倒转原则(4)里氏替换原则(5)ocp[开闭]原则(6)迪米特法则(7)合成复用原则单一职责: 对于类来说,即一个类应该只负责一项职责单一职责原则:(1)降低类的复杂度(2)提高类的可读性,可维护性(3)降低变更引起的风险(4)通常情况下,我们应该严格遵守单一职责原则,只有逻辑足够简单,才可以在代码级别违反单一原则,只有类中的方法足够少,可以在方法级别违反单一原则(一个方法只做一件事)...原创 2022-01-02 00:49:28 · 179 阅读 · 0 评论