设计模式
常用的设计模式
伍华锋
这个作者很懒,什么都没留下…
展开
-
Builder(构造器模式)的书写
文章目录1.通过构造器构建2.JavaBeans模式构建3.Builder 模式分析1.通过构造器构建假设一个场景:我们用一个class来表示车,车有一些必需的属性,比如:车身,轮胎,发动机,方向盘等。也有一些可选属性,假设超过10个,比如:车上的一些装饰,安全气囊等等非常多的属性。如果我们用构造器来构造对象,我们的做法是 提供第一个包含4个必需属性的构造器,接下来再按可选属性依次重载不同的构造器,这样是可行的,但是会有以下一些问题:一旦属性非常多,需要重载n多个构造器,而且各种构造器的组成都是在转载 2020-11-14 11:30:19 · 1768 阅读 · 0 评论 -
适配器模式 -- 简单的例子
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作!代理模式和适配器模式之间的区别的参考博文 角色分析目标接口:客户所期待的接口,目标可以是具体的类或抽象的类,也可以是接口。需要适配的类:需要适配的类或适配者的类。适配器:通过包装一个需要适配的对象,把原接口转换成目标对象。1.网线类//要适配的类...原创 2020-02-03 15:43:05 · 549 阅读 · 0 评论 -
策略模式-简单的例子
策略模式:分别封装行为接口,实现算法族,父类里放行为接口对象,在子类里具体设定行为对象。原则就是:分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化队里与算法的使用者。1.Duck1.1Duck的父类public abstract class Duck { QuackBehavior quackBehavior; FlyBehavior flyBehavio...原创 2020-02-01 16:55:20 · 297 阅读 · 0 评论 -
单列模式的书写
1.普通枚举类public enum SingletonEnum{ INSTANCE01,INSTANCE02; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }public class Test{ pub原创 2020-02-01 11:12:26 · 86 阅读 · 0 评论 -
手写一个--生产者消费者模式
文章目录前言wait/notify方法实现生产者消费者模型1. 使用Object的wait() / notify()方法前言生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。wait/notify方法首先,...转载 2020-01-12 21:36:01 · 374 阅读 · 0 评论 -
BlockingQueue(阻塞队列)相关内容分析
文章目录1. 前言2.看一下阻塞与非阻塞入队:出队:2.2 LinkedBlockingQueue 源码分析原理3.源码分析3.1 具体入队与出队的原理图:3.2、入队两个元素过后3.3、出队一个元素后put方法总结:E take()方法take方法总结:remove()方法提问:为什么remove()方法同时需要两把锁?LinkedBlockingQueue总结:4. ArrayBlocking...转载 2020-01-12 11:21:12 · 353 阅读 · 0 评论 -
设计模式(读书笔记)
策略模式:Java设计模式(刘伟)P406:其实就是以定义一些独立的类来封装不同的算法, 每一个类封装一种具体的算法, 在这里, 每一个封装算法的类我们都可以称之为一种策略(Strategy),在环境类(需要使用算法的类)中维持一个对抽象策略类的引用实例, 用于定义所采用的策略,在使用的时候可以通过注入的方式传入一个具体的策略对象(HeadFirst:使用构造函数注入,刘伟:使用的是set方法注入...原创 2019-12-15 20:31:43 · 131 阅读 · 0 评论 -
工厂模式 五种写法总结
文章目录一概述:使用场景:二 简单(静态)工厂:特点缺点三 另一种简单工厂(反射):特点缺点四 多方法工厂(常用)源码撑腰环节普通工厂与简单工厂模式的区别:缺点:六 抽象工厂:小结:缺点七 个人总结和使用场景一概述:属于创建型设计模式,需要生成的对象叫做产品 ,生成对象的地方叫做工厂 。使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。直接用new可以完成的不需要用工厂模式...转载 2019-12-14 22:11:08 · 182 阅读 · 0 评论