设计模式
jugel
菜鸟飞翔记
展开
-
备忘录模式
在实际的应用场景中,通常都会需要保存某一个时刻的状态。然后在需要的时候恢复到这个状态。如windows中的ctr+z,浏览器的 退后,git中的回滚到某一个版本等等。备忘录模式就是为这种应用场景而生的。 备忘录模式,备忘的是什么,是状态,也就是一些值。 java是面向对象的,备忘录在java中的实现通常有三个类,Originator发起者类,Memento备忘录类,Cracke...原创 2019-05-15 23:04:12 · 112 阅读 · 0 评论 -
访问者模式
迭代器模式可以用来遍历具有相同接口的对象的容器,并对这些对象做某一类型的处理。那对于没有实现同一接口,并且对这些对象的操作也不同的情况,该怎么遍历呢?于是就有了访问者模式。 访问者模式就是用于对一个数据结构中不同类型的元素,进行不同的操作。比如搬家要对家里的家具和电器做不同的处理, 家具扔掉,电器卖掉。 其实访问者模式中数据结构中的元素也会实现共同的接口或者也有共同的父类,这样...原创 2019-05-16 23:13:02 · 78 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式用于需要生产产品族的情况。什么是产品族?产品族指的是同一约束下的多个产品,如宝马车的车门,车身可以是一个产品族,奔驰车的车门和车身可以是一个产品族。而奔驰和宝马则表示不同的产品等级。 抽象工厂需要生产车门和车身。而具体的奔驰车厂则需要生产奔驰车门,奔驰车身。具体的宝马车厂需要生产宝马车门和宝马车身。 也就是工厂需要生产整个产品族的方法。一个产品族里有多少种产品,...原创 2019-06-06 01:37:01 · 141 阅读 · 0 评论 -
桥梁模式
桥梁模式的作用是使抽象化和实现化分离。这样就可以做很好的扩展。这里的抽象与实现更多的是指对某种行为上层的实现与下层具体的实现。如工厂生产产品与具体的产品被生产出来。 典型的是数据库连接的JDBC。对所有的关系型数据库是相同的界面,但是可以动态地连接不同的数据库。其实质就是抽象角色委托具体角色来连接不同的数据库。抽象角色可以对所有的数据库引擎发动指令,因为抽象角色并不直接与数据库交互,而是...原创 2019-06-03 22:53:43 · 99 阅读 · 0 评论 -
构建类设计模式比较
1.装饰模式与代理模式。 二者在形式上表现比较相像,都是一个对象的行为实际上由另一个对象来实现。但他们在功能的侧重点不一样,代理强调实际的方法由代理类来完成,并且重点是到底执行不执行代理类的方法。而装饰模式强调的是对原有类功能的增强或者削弱,而不决定到底执行与否。 2.装饰模式与适配器模式。 二者在形式上就差别明显。装饰模式是通过继承和组合的方式来不断实现增强和削弱功能。 而适配器模...原创 2019-06-11 01:09:51 · 128 阅读 · 0 评论 -
工厂方法模式
将对象的创建交由工厂来完成,从而可以屏蔽掉对象创建的细节。 有抽象工厂,具体工厂;抽象产品,以及具体产品。 可以一个工厂生产多个产品。也可以每个具体的工厂生产某一个具体的产品。 工厂方法模式简化则成为简单工厂方法模式,又称为静态工厂模式。没有抽象工厂,只有一个具体的工厂, 生成产品的方法为静态方法。 ...原创 2019-06-04 23:48:52 · 84 阅读 · 0 评论