前言今天来讲讲命令模式。
正文概念命令模式属于行为型设计模式,又称为行动模式或者交易模式,这个模式常常用在游戏开发设计中。命令模式把请求以命令的形式封装在对象中,并传给调用对象,然后调用对象寻找可以处理这个命令的对象,把命令传给相应的对象,执行命令。常见的应用场景有游戏开发中命令角色执行操作,还有GUI开发中事件也属于命令模式中的一...
前言今天继续谈谈设计模式中的一种——外观模式。
正文概念外观模式属于结构型模式的一种,它向客户端提供了一个可访问的接口,来隐藏复杂的逻辑。即将某些接口进行整合,然后提供一个接口访问这些子接口,简化客户端的访问的复杂性,并且隐藏内部子系统。这么说可能不够清楚,举个例子:假设我开发了10个接口实现了不同功能,但是同学Q要实现业务A,...
前言今天不谈设计模式,本来想写一篇从源码看hashmap,但是不传图片光靠文字要讲解清楚确实有点困难。那我们来聊聊常见的锁的种类,锁的思想在多线程开发中基本上都是互通的,而且在数据库中我们也会用到。那就开始这篇文章吧。
正文乐观锁与悲观锁乐观锁的乐观在于使用者认为每次读取数据别人都不会修改,所以不进行上锁操作,但是更新的时候...
前言说实话,就算是假期,每日一到两篇的更新还是有点累的,写一篇长一点的文章差不多一个下午就过去了,但是我个人觉得写文章比较适合我学习,变写的同时能知道哪些不懂,顺便再去复习一下,也算是个不错的方式吧。今天就来聊聊抽象工厂模式。
正文概念之前我们讲过工厂模式,工厂模式的特点是对象的创建交给工厂来实现,隐藏内部逻辑,但是工厂模式也有...
前言本文介绍中介者模式。
正文概念中介者模式属于行为型模式,是用在多个对象之间的通信,这种模式提供一个中介类,这个类处理不同类之间的通信,使代码松耦合易维护。这个模式解决的问题是类与类之间关联性较大,系统呈网状结构,而这个模式就是将网状结构分离成星型结构,来减少类之间的依赖程度。常用实例有:
网络通信,例如QQ群的通信。
M...
前言本文讲讲工厂模式。
正文概念工厂模式是Java中常用的一种设计模式,它属于创建型模式的一种,又称为工厂方法模式,这种模式提供了创建对象的一种方法,对客户端隐藏生成对象的逻辑,使用一个接口来指向新的对象。常见的实例有:
工厂提供多种产品,你可以直接购买,无需关心如何制作。
日志管理,可以使用多种方式记录,并且可以记录到本地,...
前言上篇提到Spring AOP中使用了代理模式。其实spring aop很早我就想写文章,因为它和ioc属于spring中最重要的两个概念之一。那这篇就好好讲讲spring aop。
正文什么是AOPAOP(Aspect Oriented Programming),中文翻译为面向切面编程,那啥是面向切面编程?我只听过面向对象编程啊...
前言今天来讲讲结构型模式的一种——代理模式。
正文概念与介绍代理模式其实在日常生活中的例子很多,比如买东西的时候,代售点就是代理模式的一种,再比如代理上网,这个对许多人并不陌生,这里就不再多说(小声)。那代理模式的主要意图就是由于访问目标有种种困难或问题,或者说无法访问,只有通过另一个对象才能访问这个对象,那这种模式就称作代理模式。...
前言本篇谈谈观察者模式。
正文概念我们在开发的时候,常常会有这样的需求场景:一个对象的某个状态更新了,与这个对象相关的所有对象都要跟着更新。但这些相关对象又不能直接写在类中,这时候我们就需要一个观察者帮助我们在一个对象更新后,通知其他对象跟着更新。常见的场景有:发布订阅模型,例如公众号的发布就属于被观察者,而用户属于观察者。再比如游...
前言今天就来谈谈常见的设计模式——单例模式。
正文概念单例模式属于创建型模式,这个设计模式涉及到一个单一的类,这个类负责创建自己的对象,又确保只有单个对象被创建,提供了一个全局唯一的实例化对象。它的目的是为了控制实例的数目,又或者是实例是单一的情况下,例如一个设备同时只能有一个对象进行操作。而实现单例模式的关键代码就是将构造函数...