- 浏览: 5694 次
最新评论
文章列表
1. 简介
观察者模式,也叫发布-订阅模式, 定义了一对多的依赖关系. 多个观察者监听一个主题.
主题发生变化时, 观察者得到通知, 然后选择后续的动作.
这里的得到通知, 根据是主题主动通知还是观察者主动请求分为推模型和拉模型
类图如下:
上图是观察者模式的最简单实现,类似于OS中的最小系统. 和一般面向对象语言的设计模式一样, 都会使用到多态, 利于程序的可扩展性.类图中分为4个角色:
抽象主题: Subject
具体主题: ConcreteSubject
抽象 ...
一、简介
在C/C++中,都可以直接操作指针,分配内存都需要显式释放。
C++有构造函数和析构函数,创建对象用new,销毁对象用delete。C分配内存用malloc和free。
而java中,只需要显式的new出对象,具体什么时候销毁,就由JVM决定了,不需要人工干预。但是我么还是最好明白JVM垃圾回收的原理,出现问题也容易排查。
二、虚拟机基本结构
以Sun Hotspot Jvm 1.7 为例,虚拟机结构如下图:
hotspot JVM使用了分代的结构。对象分配时,会首先进入新生代,之后一部分留在新生代,一部分晋级老年代。 ...
模板方法模式是比较简单的模式,在框架中用处也很多,这里介绍下基本实现,和几个理解上的关键点。
1、定义和类图
定义一个抽象类,将部分逻辑使用具体方法或构造方法在抽象类中实现,另一部分逻辑,在抽象类中定义成抽象方法,强迫子类是实现。这样,不同的子类对于抽象方法的实现逻辑就可以不一样。这就是模板方法模式的意义。类图如下:
从类图中可以看到,抽象类中有一个模板方法template Method,一个抽象方法abstract Method,一个钩子方法hook Meth ...
Java动态代理模式
- 博客分类:
- 设计模式
代理模式,就是因为某些原因,无法操作一个具体的对象concrete,那么就提供一个代理对象proxy,通过这个代理对象来操作具体的对象concrete。
代理模式有很多种,包括静态代理,保护代理,远程代理,动态代理等等,每一种都有特定的使用场景。本文主要介绍Java中的动态代理。
一、静态代理和动态代理的区别
首先给出静态代理和动态代理的定义:
静态代理:由程序员创建,或由工具自动生成源代码,然后进行编译。运行期间,代理的class文件已经存在。
动态代理:程序运行时,通过反射机制动态创建而成。
网上有很多maven配置和使用的内容,本文不重复讲解,只介绍maven的一些规则,在开发工作中不会被一些问题卡住。
一、什么是maven,为什么要用maven
作为一门编译型语言,和其它编译语言相同,需要进行 ...