随笔分类 - 23种设计模式-Java
代码驱动思想
摘要:前言 代理模式算是Java设计模式中最难的一个,因为它涉及到的东西比较底层。 代理模式分静态代理和动态代理,静态代理很简单,难的是动态代理。 静态代理 例1:(现实意义上的例子,被代理类没有实现接口) AMD厂商生产cpu,售卖cpu,他不直接在中国销售,而是通过代理商售卖。这里以京东代理为例 被代
阅读全文
摘要:写在前面 构造者模式将一个复杂对象的构造过程和它的表现层分离开来,使得相同的构建过程能够创建不同的表示 主要运用在复杂类的创建上 示例 现在有一个Computer类,Computer又由CPU,Disk,Memory等类组成。 Computer类 package com.zl.builder; pu
阅读全文
摘要:写在前面 我们先来看一个程序例子 package com.zl.flyweight; public class StringTest { public static void main(String[] args) { String s1 = "abc"; String s2 = "abc"; St
阅读全文
摘要:写在前面 什么是组合模式,笼统来说,用来处理树形结构的模式就是组合模式 举几个树形结构的例子: 文件目录结构 每一个文件和文件夹就是树的结点,具体的一个文件就是树的叶子节点 前段时间一个教育行业的同事遇到的一个问题 这也是一个树形结构,不过分类更加复杂一些,不像文件目录结构那样,只有两种类型:文件夹
阅读全文
摘要:概念 字面意思,用来做装饰的。 原理:通过类的聚合 例子(github游戏代码地址) (游戏设计bug非常多,完全是为了学设计模式而写,勿喷。除了用的装饰模式,还混杂着其他设计模式,有些实在不适合混杂在一起,我又重新归零,另建了分支。 操作:上下左右控制移动,ctrl键发射一颗子弹,A键发射4颗子弹
阅读全文
摘要:简单概念 当一个请求需要经过多级过滤处理时,这个多级处理的每一个流程串起来就是一个责任链,每一个流程负责自己的责任。这个请求可能经过了多个流程的处理,也可能只经过了一个流程的处理,甚至没有流程处理。 例子: 某媒体需要对用户发布的文章做一些处理,需要去除敏感词,去除HTML代码,补全链接等。(就像打
阅读全文
摘要:工厂模式:创建对象的工厂 为什么要用工厂模式: 1,解耦通过工厂模式可以把对象的创建和使用过程分离。2,减少代码量,易于维护如果我们直接new一个对象时,如果需要的对象构造方法比较复杂,那么可能需要一连串的代码去创建对象,如果在别的类中又需要创建该对象,那么代码的重复度肯定不小。通过工厂模式的话,我
阅读全文
摘要:概述 我们开发过程中会遇到实现一个功能会有多种解决方法或者说多种策略,我们可以根据当时的生产环境,选择适合的解决办法。如果单纯的按照基本开发去实现,只考虑当前策略,让类与类之间实现强依赖关系,那么后期,当我们需要更换策略时,整个解决流程代码都要重新整改,费时费力。策略模式不仅解决了这个问题,而且对于
阅读全文
摘要:单例模式 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决:一个全局使用的类频繁地创建与销毁。 何时使用:当您想控制实例数目,节省系统资源的时候。 如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码:私有化构造方法 以下是单例模式7种设计方式以及特点
阅读全文