设计模式
书生灬今天不吃饭
这个作者很懒,什么都没留下…
展开
-
设计模式--享元模式
设计模式–享元模式 享元模式应用场景 享元模式的英文名又叫Flyweight,意思是轻量级,而我们翻译的中文名享元个人感觉比轻量级的直译更好。 享元模式的定义是:使用共享技术有效地支持大量细粒度的对象。 通俗的来说,就是建立对象池,共享对象池,已达到限制对象数量的目的。 内部状态和外部状态 享元模式要求共享和细粒度,于是享元模式的对象信息就分为内部和外部两种状态。 内部状态,指对象共享的信息,存...原创 2019-11-25 13:56:14 · 202 阅读 · 0 评论 -
设计模式--观察者模式
观察者模式应用场景 当对象之间形成一对多关系,并且一个对象改变状态会通知所有依赖它的对象时,可以考虑使用观察者模式。 观察者模式实现 正值双十一,我们就用用户购买商品来作为例子实现简单的观察者模式。 想象这样一个场景:商店里没有商品,但是用户忍不住剁手的冲动,很想买,所以就不停的查看商店是否进货,这样会造成大量的无用操作。所以现在就让商店进货的时候通知这些购买者,这样就省去了大量的询问。 现在,为...原创 2019-11-19 16:16:31 · 128 阅读 · 0 评论 -
设计模式--责任链模式
责任链模式应用场景 一个事件要经过多个对象的处理,例如公司的审批流程、软件开发中的异常流程处理、前端页面的请求流程处理等,都可以考虑用责任链模式。 责任链模式的实现 现在让我们用公司的审批流程来作为场景举例实现。 根据上图展示,我们来模拟一个最简单的场景:某公司制定了出差报销的审批流程,有三个审批角色,员工(1000元以下的审批权限)、经理(5000元)和CEO(10000元)。 那么,这个时候...原创 2019-11-19 15:43:52 · 120 阅读 · 0 评论 -
设计模式--单例设计模式
什么是单例模式 单例,顾名思义,就是整个系统中只有一个实例,不能存在其他实例。 为什么要用单例模式 当创建实例需要大量的资源开销,并且每个实例间都是共享资源时; 当创建多余实例容易找出线程同步和安全问题时。 单例模式实现 我们就来创建一个计算机里的上帝吧。 首先我们创建一个上帝类,并把构造方法改为私有,保证外部无法创建上帝 public class God { private God(){}...原创 2019-11-18 16:07:24 · 120 阅读 · 0 评论 -
设计模式--原型设计模式
设计模式--原型设计模式原型模式理解原型模式的实现深克隆与浅克隆代码实现 原型模式理解 当因代码需要创建大量的重复对象时,比如一个for循环对象集合,每一次循环都要new一个对象来接收,这时的资源开销比较大。所以,这样场景下我们就可以选择使用原型模式用克隆对象替代new对象,在保证需求的同时又能提高性能。 原型模式的实现 深克隆与浅克隆 Java中底层提供了Cloneable接口,使用其中提供的c...原创 2019-11-18 15:25:43 · 185 阅读 · 0 评论