关闭

Java设计模式(三) Visitor(访问者)模式及多分派场景应用

基本概念 Visitor 封装一些作用于数据结构中的各元素的操作,不同的操作可以借助新的visitor实现,降低了操作间的耦合性访问者可以将数据结构和对数据的操作解耦,使得增加对数据结构的操作不需要取修改数据结构,也不必去修改原有的操作,而执行时再定义新的Visitor时闲着就行了(在操作添加上易拓展) 模式中角色分工 Visitor:抽象访问者,在重载的visit函数中声...
阅读(105) 评论(0)

单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举。

http://blog.csdn.net/nsw911439370/article/details/50456231 转 https://biezhi.me/article/how-to-correctly-write-singleton-pattern.html 单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本...
阅读(129) 评论(0)

并发模式(三)——生产者-消费模式

生产者-消费模式,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责具体处理生产者提交的任务。两者之间通过共享内存缓冲去进行通信。 一、架构模式图: 类图: 生产者:提交用户请求,提取用户任务,并装入内存缓冲区; 消费者:在内存缓冲区中提取并处理任务; 内存缓冲区:缓存生产者提交的任务或数据,供消费者使用;...
阅读(115) 评论(0)

并发模型(二)——Master-Worker模式

     Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务;Worker进程,负责处理子任务。当Worker进程将子任务处理完成后,结果返回给Master进程,由Master进程做归纳汇总,最后得到最终的结果。 一、什么是Master-Worker模式: 该模式的结构图:   结构图...
阅读(115) 评论(0)

并发模型(一)——Future模式

多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式;jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池;    锁(分为内部锁、重入锁、读写锁)、ThreadLocal、信号量等在并发控制中发挥着巨大的作用。这里重点介绍第一种并发——Future模型。 一...
阅读(116) 评论(0)

观察者模式与事件驱动模式实例比较

观察者模式所涉及的角色有:   ●  抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主题角色又叫做抽象被观察者(Observable)角色。   ●  具体主题(ConcreteSubject)角色:将有关状态存入具体观察者对象;在...
阅读(459) 评论(0)

Agent和Broker的差别是什么?

agent你应该在计算机科学里见过,比如智能agent,多agent环境等等。两个都有“代替委托方操作”的意思,但是具体还有有一些差别。 Agent虽然是代理,但是有自己的环境适应方式,委托人只下达指令,如何完成指令由agent自己决定,所以agent又被称为有代理身份的主体;broker更多地体现被动分,更倾向于“经纪人”,决策主要有委托方来完成,在搞权限委托下也可以做很多决策。简单地说,br...
阅读(353) 评论(0)

设计模式——Spring IoC中用到的模板方法模式

http://www.cnblogs.com/gnidoc/p/4981447.html 基本概念 什么是模板方法(Template method):父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现。 最大的好处:代码复用,减少重复代码。除了子类要实现的特定方法,其他方法及方法调用顺序都在父类中预先写好了。 所以父类模板方法中有两类方法: 1、共同的方...
阅读(1024) 评论(1)

分布式模式之Broker模式

问题来源:  创建一个游戏系统,其将运行在互联网的环境中。客户端通过WWW服务或特定的客户端软件连接到游戏服务器,随着流量的增加,系统不断的膨胀,最终后台数据、业务逻辑被分布式的部署。然而相比中心化的系统,复杂度被无可避免的增大了,该如何降低各个组件之间的耦合度。 挑战:  需要保证可伸缩性、可维护性、可更新性,需要将服务划分为各个相对独立的组件,组件被分布式的部署,它们之间通过进程间通信方...
阅读(147) 评论(0)

加载一个类时,其内部类是否同时被加载?静态内部类单例模式

加载一个类时,其内部类是否同时被加载?下面我们做一个实验来看一下。  Java代码   public class Outer {       static {           System.out.println("load outer class...");       }              //静态内部类       static class...
阅读(188) 评论(0)

从 MVC 到前后端分离

从 MVC 到前后端分离 1 理解 MVC MVC 是一种经典的设计模式,全名为 Model-View-Controller,即 模型-视图-控制器。 其中,模型 是用于封装数据的载体,例如,在 Java 中一般通过一个简单的 POJO(Plain Ordinary Java Object)来表示,其本质是一个普通的 Java Bean,包含一系列的成员变量及其 getter/setter ...
阅读(458) 评论(1)

《JAVA与模式》之状态模式

状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。   状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 状态模式的结构   用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在...
阅读(324) 评论(0)

《JAVA与模式》之策略模式

策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构   策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:...
阅读(312) 评论(0)

Java:单例模式的七种写法

转载出处:http://cantellow.javaeye.com/blog/838473 第一种(懒汉,线程不安全):  1 public class Singleton {    2     private static Singleton instance;    3     private Singleton (){}     4     public stati...
阅读(1194) 评论(0)

《JAVA与模式》之装饰模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的:   装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式的结构   装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情...
阅读(464) 评论(0)
37条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:8242477次
    • 积分:70061
    • 等级:
    • 排名:第26名
    • 原创:256篇
    • 转载:2742篇
    • 译文:3篇
    • 评论:735条
    文章分类
    最新评论