
设计模式
IManiy
即使在搬砖,也要仰望大厦。
展开
-
设计模式之责任链模式
Process 就是一个接口了,用于定义真正的处理函数。 public interface Process { /** * 执行处理 * @param msg */ void doProcess(String msg) ; } 同时之前对内容的各种处理只需要实现该接口即可: public class AProcess implements Process { @Override public void doProcess(String msg原创 2021-11-30 19:51:05 · 3581 阅读 · 0 评论 -
设计模式之单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。 通常单例模式在Java语言中,有两种构建方式: 懒汉方式。指全局的单例实例在第一次被使用时构建。 饿汉方式。指全局的单例实例在类装载时构建。 懒汉模式 /** * 单例模式-懒汉模式或称为饱汉模式 * 用户获取实例的时候...原创 2018-11-18 17:55:57 · 145 阅读 · 0 评论 -
设计模式之工厂模式——简单工厂
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 以鞋子为例 鞋子接口 public interface ShoesInterface { //实现了鞋子 public void draw(); } 实现鞋子接口,有红鞋子、黑鞋子 用输出语句来代表其中操作 pub...原创 2018-11-18 18:15:02 · 219 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。 以创建人物为例 人分成男、女 而男女中又分成年轻、年迈 开始用java代码写抽象工厂模式 男孩、女孩接口 public interface Boy { //创建一个男孩...原创 2018-11-18 18:45:21 · 186 阅读 · 0 评论 -
设计模式之代理模式——静态代理及jdk、cglib动态代理
在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。原创 2018-11-18 23:03:01 · 381 阅读 · 0 评论 -
设计模式之观察者模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 即目标发生更改通知时,观察者对象会收到通知 观察者模式通用代码 分为 推模型——主动把某一数据推送给观察者 拉模型——观察者主动到目标对象中获取数据,一般这种模型的实现中,会把目标对象自身对象自身通过update方法传递给观察者 拉模型 目...原创 2018-11-18 23:21:21 · 180 阅读 · 0 评论 -
设计模式之观察者模式——利用java中提供的观察者实现
java实现与自己实现的对比 一、不需要再定义观察者和目标的接口了,JDK帮忙定义了 二、具体的目标实现里面不需要再维护观察者的注册信息了,这在Java中的Observable类里面已经帮忙实现好了。 三、触发通知的方式有一点变化,要先调用setChanged方法,这个是Java未来帮助实现更精确的触发控制而提供的功能。 四、具体观察者的实现里面,update方法其实能同时支持推模型和拉模型,这个...原创 2018-11-19 22:05:59 · 209 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作 适配器模式结构图: 四个角色 适配器分类 组合:采取组合方式的适配器成为对象适配器 特点:把“被适配者”作为一个对象组合到适配器类中,以修改目标接口包装被被适配者 继承:采用继承的方式的称为类适配器 特点:通过多重继承不兼容接口,实现对目标接口的匹配,单一的为某个类二实现适配 以显示器中HDMI线和...原创 2018-11-19 23:30:59 · 182 阅读 · 0 评论 -
设计模式之策略模式
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 策略模式: 定义了一族算法(业务规则); 封装了每个算法; 这族的算法可互换代替(interchangeable) 组成 —抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 —具体策略角色:包装了相...原创 2018-11-20 17:34:10 · 233 阅读 · 0 评论 -
设计模式之模板方法模式
模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。 实现要素: 一、抽象基类 1.基本方法 如: /** * 基本方法 开幕式 */ private void opening() { System.out.println("运动会开幕式"); } 2.抽象...原创 2018-11-21 10:32:39 · 181 阅读 · 0 评论 -
设计模式之解释器模式
解释器模式的优缺点 解释器是一个简单的语法分析工具,它最显著的优点就是扩展性,修改语法规则只需要修改相应的非终结符就可以了,若扩展语法,只需要增加非终结符类就可以了。 但是,解释器模式会引起类的膨胀,每个语法都需要产生一个非终结符表达式,语法规则比较复杂时,就可能产生大量的类文件,为维护带来非常多的麻烦。 同时,由于采用递归调用方法,每个非终结符表达式只关心与自己相关的表达式,每个表达式需要知道最...原创 2019-12-29 16:56:17 · 234 阅读 · 0 评论 -
设计模式之中介者模式
就是把各个对象的交互放在一个公共的场所,也可以理解为第三方。通过公共场所来实现A来影响B。最典型的例子就是MVC。 我们先看看直接通过A来影响B,看看中介者模式的作用。a是b的100倍,a变化后会影响b变化。 直接影响 a和b的抽象类 abstract class AbstractColleague { protected int number; public int getN...原创 2019-12-29 16:52:02 · 207 阅读 · 0 评论 -
设计模式之命令模式
命令模式:适用于命令型操作并命令内容以后不会修改如:文件操作密命令增删改等响应式操作。 其定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 其缺点是命令如果很多,开发起来就要头疼了。特别是很多简单的命令,实现起来就几行代码的事,而使用命令模式的话,不用管命令多简单,都需要写一个命令类来封装。 一般来说,我们会把对...原创 2019-12-18 21:33:28 · 221 阅读 · 0 评论