设计模式
sofency
stay hungry stay foolish
展开
-
责任链模式
责任链模式(Chain of Responsibility)是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功为止。责任链模式把多个处理器串成链,然后让请求在链上传递:模拟场景:一批账单,数额低于1000的由manager处理,数额高于1000但是小于10000的由boss解决,数额高于10000的由leader解决.模拟请求类class Request{ private String name; private BigDecimal amount;原创 2020-08-07 15:40:39 · 115 阅读 · 0 评论 -
工厂方法模式
工厂方法(FactoryMethod)模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。因此生产产品我们需要四个部分: 1.抽象工厂 2.具体工厂 3.抽象产品 4. 具体产品工厂方法的优点:用户只需要知道具体工厂的名称就可以得到所要的产品,无需知道产品的创建过程;在系统需要生产其它的产品时,我们只需要添加具体的产品和具体的工厂类,无需对原工厂进行修改;下面我们模仿下从动态的xml文件中,获取产品进行原创 2020-07-17 14:28:25 · 118 阅读 · 0 评论 -
软件的编码规范
软件编码的规范:里氏替换原则: 核心思想就是子类可以扩展父类的方法,而不能改变父类原有的功能.依赖倒置原则: 核心思想是面向接口编程,而不是面向实现编程.例如客户在A商店购物,下一次在B商店购物,我们就需要将商店给抽象出来,不然每次都要修改商店的名字.单一职责原则: 核心思想就是对象不应该承担过多的职责,否则如果出现错误就会波及整个对象的使用.接口隔离原则:核心思想是为了约束接口,降低类对接口的依赖性,将臃肿庞大的接口分解为多个粒度的接口,可以预防外来的变更的扩散,提高系统的灵活性和可维护性.就原创 2020-07-17 13:17:37 · 1141 阅读 · 0 评论 -
享元模式的理解
享元模式的出发点在于减少创建对象的数量,以减少内存占用和提高性能。防止存在大量对象从而导致内存溢出。享元模式重视重用现有的同类对象,如果未找到匹配的对象,则创建新对象。如果找到匹配的对象,就直接返回对象。依据上面所说,那么肯定要用到key-value的存储机制 因此使用hashmap进行存储。应用的场景:在String中我们会发现如下判断是相等的String str1 = "ABC";S...原创 2020-04-06 22:51:15 · 255 阅读 · 1 评论 -
装饰者模式(菜鸟进阶大神装饰过程)
练习代码数系装饰器/** * @Auther :sofency * @Date: ${DATA} * @Description: 装饰器 * 1.抽象组件 * 2.具体组件 * 3.抽象装饰类 要包含抽象组件的引用 * 4.具体装饰类 * @Version: 1.0 */public class decorate { public static void main...原创 2019-08-22 18:05:28 · 584 阅读 · 4 评论 -
适配器模式
我们可能都见到过一种可以适配多种手机的充电线。如下图上述商品的主要目的就是为了充电,但是需要兼容多种插孔的手机。这就是一种适配器模式的应用。适配器的定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。分析:首先我们的数据线的功能使为了充电 因此我们抽象出一个充电的接口类...原创 2020-03-29 14:49:58 · 119 阅读 · 0 评论 -
建造者模式
建造者模式定义将复杂对象的构建和表示分离,使用同样的构建方式可以创建不同的对象分析:复杂对象(电脑):比如制造一台电脑,电脑的制作过程非常复杂。电脑的制作需要各种零件 CPU,显示器,键盘,内存。构建方式 (接口):将这些零件组装成电脑。分离:就是电脑零件的构造对象。创建过程(构建返回方式的接口):具体如何组装的,同时返回需要的对象(电脑)第一步:根据上述分析我们构建电脑pub...原创 2020-03-29 14:06:52 · 158 阅读 · 0 评论 -
设计模式-生产者消费者分析以及实现的三种方式
所谓生产者消费者模式,即N个线程进行生产,同时N个线程进行消费,两种角色通过内存缓冲区进行通信,为什么要使用这种模式进行生产代码。优点:极大的解决了代码之间的耦合程度解释:之前我们写的代码可能是这样的,有A和B 两个功能代码处理数据,B代码的执行必须要依赖于A代码才能执行完B的功能,即A耦合于B。显然这严重影响B代码的生产,而且如果产生错误的话,也不容易及时的排查。采用生产者消费者模式,A...原创 2019-12-01 00:48:00 · 190 阅读 · 0 评论 -
设计模式-单例模式-懒汉&饿汉以及线程的安全问题
单例模式单例模式是最简单的设计模式之一,属于创建型模式,它提供了一种创建对象的方式,确保只有单个对象被创建。这个设计模式主要目的是想在整个系统中只能出现类的一个实例,即一个类只有一个对象。单例模式的解决的痛点就是节约资源,节省时间从两个方面看:1.由于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级的对象而言,是很重要的.2.因为不需要频繁创建对象,我们的GC压力也减轻了,而...原创 2019-11-29 18:27:13 · 393 阅读 · 0 评论