随笔分类 - 设计模式
摘要:概述 在代码中我们经常会有if…else…判断,一个条件不满足就进行下一个判断,这种就类似于责任链模式,只不过责任链模式是通过对象来过滤。 场景 在物联网行业中,一个设备会以一定的频率向服务器推送数据,方便服务器对机器进行一个数据采集和监控,这个数据的类型是多种多样的。例如娃娃机来说:会有设备状态的
阅读全文
摘要:业务场景 在业务代码中构造了一个类,里面有7个字段,需要给构造方法传7个值 public class Home { //门 private String Door; //椅子 private String Chair; //厨房 private String Kitchen; //马桶 privat
阅读全文
摘要:介绍 在编程开发中经常会遇到这样一种场景,那就是需要保证一个类只有一个实例哪怕多线程同时访问,并需要提供一个全局访问此实例的点。单例模式主要解决的是,一个全局使用的类频繁的创建和消费,从而提升提升整体的代码的性能。 例如:日志系统的对象被反复创建打印 public class Logger { pr
阅读全文
摘要:业务场景 我们经常有这样子的代码 我们根据配置文件的后缀(json、xml、yaml、properties),选择不同的解析器(JsonRuleConfigParser、XmlRuleConfigParser……),将存储在文件中的配置解析成内存对象 RuleConfig public RuleCo
阅读全文
摘要:模板方法 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 模板方法包含以下角色: 抽象类:负责给出一个算法的轮廓和骨架 模板方法包含了具体逻辑顺序 基本方法包含了抽象方法以及具体方法 具体子类:实现抽象类中所定义的方法,它们
阅读全文
摘要:策略模式 生活中我们去超市购物可以选择不同促销价格的商品,去旅游可以选择可以坐汽车、可以坐火车、可以坐飞机。 策略模式:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换 策略模式具体角色实现 抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的
阅读全文
摘要:代理模式:为其他对象提供一种代理以控制对这个代理对象的访问 代理分为两种模式:静态代理、和动态代理模式 代理模式中有三个角色: 抽象角色:声明真实对象和代理对象的共同接口。 代理角色:代理对象与真实对象实现同样的接口,所以它可以在不论什么时刻都可以代理真实对象。代理角色内部包括有对真实对象的引用。所
阅读全文
摘要:简单工厂模式 简单工厂模式是由工厂对象决定创建哪一种产品,虽然不属于23种设计模式,但是也是工厂模式进阶的由来。 模拟场景: 暑假太过无聊,就自己在家打算做一个MP3播放器,其中包括播放器的程序设计也是自己来搞定的。如下结构 //歌曲播放接口 public interface ISong { voi
阅读全文

浙公网安备 33010602011771号