![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
L-study
互联网海洋
展开
-
设计模式之过滤器模式的学习思考
过滤器模式属于设计模式里面的结构型模式。这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。常见的通用实现方法是通过ArrayLiat来作为容器存放对象并利用对象的多态对其进行操作。设计思路: 创建一个要过滤的类,普通类即可,要有获得其私有属性的get方法 创建一个接口,规定过滤方法 实现接口,可以依需要来实现过滤的条件(通过重写过滤方法),参数传递的可以说Li原创 2017-06-29 11:15:36 · 1851 阅读 · 0 评论 -
设计模式之迭代器模式的学习思考
迭代器模式最经典的应用应该就是Java中的迭代器了,在Java集合Collection接口就继承了Iterable。种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于设计模式里的行为模式。优点: 它支持以不同的方式遍历一个聚合对象。 迭代器简化了聚合类。 在同一个聚合上可以有多个遍历。 缺点: 由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的原创 2017-07-09 08:53:03 · 317 阅读 · 0 评论 -
设计模式之解释器模式的学习思考
解释器模式,就跟它的名字一样,起到解释的作用,比如对一个表达式进行解释,使其能够被人们所理解,属于设计模式里的行为型模式一种这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。优点: - 可扩展性比较好,灵活。 - 增加了新的解释表达式的方式。 - 易于实现简单文法。缺点: - 可利用场景比较少。 - 对于复杂的文法比较难维护。 -原创 2017-07-08 09:57:34 · 307 阅读 · 0 评论 -
设计模式之命令模式的学习思考
命令模式与责任链模式有点像,但是还是不同。 命令模式:将多个命令只提交给一个执行该命令的对象 而职责链模式相反:只将一个请求提交给多个能执行该命令的对象 命令模式也属于行为型模式。何时使用,比如要对行为进行”记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将”行为请求者”与”行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。代码: imp原创 2017-07-07 10:04:28 · 197 阅读 · 0 评论 -
设计模式之桥接模式的学习思考
桥接模式(BridgePattern)是设计模式中结构型模式的一种,所以,它也是通过继承组合的关系来实现。桥接模式是用于把抽象化和实现化解耦,即增加双方的独立性和灵活性。具体来说: 创建接口和实现接口的类,这是来实现功能的 创建抽象类和继承类,这是表现功能的 两者之间的连接是通过将接口放入抽象类中,作为成员变量 生活中有很多这样的模式,比如开关,其表现和具体实现是分离的,我们只能通过开关,而不知道具原创 2017-06-28 09:18:38 · 271 阅读 · 0 评论 -
设计模式之责任链的学习思考
责任链模式,顾名思义,每个对象之间形成一条链,这条链形成的基础是各级对象的责任;当一个消息请求发来时,依次传递,哪个对象符合消息处理的条件就处理。 这个模式可以让消息的发送者不清楚消息的处理者具体是谁,职责链将请求的发送者和请求的处理者解耦了。属于设计模式里的行为型模式设计: 一个抽象类,属性有各级指数,后继对象,方法有抽象和非抽象:非抽象是判断谁处理,抽象是各级对象具体处理方法; 各实现抽象类的原创 2017-07-06 11:10:12 · 227 阅读 · 0 评论 -
设计模式之适配器模式的学习思考
适配器模式是设计模式里的结构型模式一种其功能如其名字一样——适配,主要用于接口适配,通过接口转换,将一个类插在另一个类中打个比方,美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。优点: 可以让两个没有关联的类一起运行 提高了类的复用 比较灵活 缺点: 过多地使用适配器,会让系统非常零乱 由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是原创 2017-06-27 10:13:01 · 214 阅读 · 0 评论 -
设计模式之原型模式的学习思考
原型模式是设计模式里的创建型模式,通过对象来创建对象,一般通过克隆来实现。克隆有浅克隆和深克隆之分:是对类内部对象引用的克隆程度 浅克隆后,新对象类的基本数值独立,但是克隆的对象引用只是地址,原对象改变,新克隆的对象也会改变; 深克隆,完全克隆,源对象的改变无论是基本数值还是对象引用都不会对新对象造成影响。 小例子: 浅拷贝: import java.util.ArrayList; import j原创 2017-06-26 16:15:36 · 191 阅读 · 0 评论 -
设计模式之代理模式的学习思考
总觉得设计模式名字起的很好,形象地就代表它的功能。正如代理模式,它是使用一个类代表另一个类的功能,属于结构型设计模式。通过创建对象的对象,来提供访问功能的接口。应用举例:快捷方式、代售点等。设计: 一个接口,两个分别实现类,一个是功能类,一个是代理类,代理类里有功能类对象的数据成员 代码:interface Image{ void display(); }class RealImage im原创 2017-07-05 08:46:05 · 233 阅读 · 0 评论 -
设计模式之创建者模式的学习思考
建造者模式属于设计模式的创建型模式,其使用多个简单的对象一步一步构建成一个复杂的对象,其中使用了接口,抽象和继承。关于设计者模式的思想有: 通过抽象类实现接口,再让普通类继承抽象类,对特定方法的读取; 复杂的构建与表示分离,建立结构容器类和制造类; 工厂模式的区别是:建造者模式更加关注零件与零件装配的顺序。 思路: 设计接口,其作用是类所遵循的规范; 设计抽象类和普通类来实现接口; 抽象类和其继承类原创 2017-06-25 17:33:36 · 214 阅读 · 0 评论 -
设计模式之单例模式的学习思考
单例模式应该要属于比较简单的一种设计模式,正如它的名字一样,它只有一个实例,而且是在自己的类内部就产生,通过方法来提供给外部。特点: 只有一个实例,且是private static 没有接口,不能继承 构造函数私有化 必须向整个系统系统这个实例,即getInstance方法应该是public static 组成: private static数据变量 私有构造函数 公共的getInstance方法(原创 2017-06-24 16:49:11 · 194 阅读 · 0 评论 -
设计模式之享元模式的学习思考
享元模式,顾名思义,对对象的分享。其主要用于减少创建对象的数量,以减少内存占用和性能提高。 该模式属于结构型设计模式。实现途径: 通过hashmap 通过工厂模式 通过多态 设计: 通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。 代码:import java.util.HashMap; interface Shape{ void draw(); }class Cir原创 2017-07-04 08:46:00 · 239 阅读 · 0 评论 -
设计模式之抽象工厂模式的学习心得
对于抽象工厂模式,我们首先要明白的是——其是建立在工厂模式基础之上的,其也属于创建型设计模式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显示指定它们的类,每个生成的工厂都能按照工厂模式提供对象。 理解:创建抽象工厂类来获取工厂对象,创建继承抽象类的工厂类,生成实体类对象以及创建一个工厂创造器来获取工厂。 思路: 1.创建抽象工厂族类原创 2017-06-23 16:24:40 · 1814 阅读 · 0 评论 -
设计模式之外观模式的学习思考
外观模式属于设计模式里的结构型模式的一种,核心思想是隐藏系统的复杂性,并向客户端 提供了可以访问的接口。个人认为外观模式是其他设计模式的基础,在许多模式里都有体现。较易掌握。思路: 设计一个接口和分别实现接口的类(系统类) 设计一个类(实现类),类的数据成员是系统类对象,private控制权限,封装 类的的方法分别调用数据成员对象的方法 最后public类main方法调用展现 设计: 一个接口Sha原创 2017-07-03 09:04:01 · 315 阅读 · 0 评论 -
设计模式之工厂模式的学习心得
今天学习了设计模式里面的创建型模式之工厂模式(Factory Pattern),其是Java最常用的设计模式之一。这种设计模式主要是提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个**共同的接口**来指向新创建的对象。理解:根据传字符串值来确定生成具体的对象来实现方法。思路: 1.设计一个公共的接口; 2.分别设计具体的类去实原创 2017-06-22 17:27:41 · 1022 阅读 · 0 评论 -
设计模式之装饰器模式的学习思考
装饰器模式(Decorator Pattern)属于设计模式里的结构型模式一种。白话地说,我们可以给一个类加一些它没有的功能比如:给一个圆加上颜色;给手机增加上网的功能等等它的实现思想: 一般是以抽象类的为装饰类,继承抽象类的子类具体实现装饰内容 组合思想,即被装饰的类的对象作为变量放置在抽象类内部,一般,为了实现给许多具有相同的特质的类统一装饰,我们会用接口来规范被装饰类 这就设计了多态 小例子:原创 2017-07-01 10:07:09 · 284 阅读 · 0 评论 -
设计模式之备忘录模式的学习思考
每个人都有写便签的习惯,其实这也是保存信息的一种方式,和备忘录差不多,都是提醒自己过去做过的事或者将来要做的事。备忘录模式(Memento Pattern)保存了一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于设计模式里的行为型模式。主要的实现形式其实很简单,为了不破坏封装性,我们再单独创建一个类来封装备份信息,然后再创建一个容器类,用来存放信息,以便今后的获取。代码和注释如下:impo原创 2017-07-11 09:30:14 · 355 阅读 · 0 评论 -
设计模式之组合模式的学习思考
组合模式(Compostite Pattern)是设计模式里的结构型模式一种。它的结构类似于数据结构里的树形结构。把一组对象通过容器类来存放,通过最外部的对象来逐渐的显示里面的对象。优点: 高层模块调用简单 节点自由增加 缺点: 使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。 依赖倒置原则:这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。原创 2017-06-30 11:33:30 · 191 阅读 · 0 评论 -
设计模式之中介者模式的学习思考
中介:中介指在不同事物或同一事物内部对立两极之间起居间联系作用的环节。简单地说,对象与对象之间不是直接联系(通信),而是通过某种渠道、格式或者事务。而中介者模式(Mediator Pattern)就是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。现实中: 中国加入 WTO 之前是各个国家相互贸易,原创 2017-07-10 08:59:38 · 324 阅读 · 0 评论