java设计模式_Composite模式
Composite模式(组合)
Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Composite(组合模式)模式是比较常用的一个模式.
Composite组合模式,将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
优点: 1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。
2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。
在此写了6个java类来描述说明Composite设计模式的实现方式;
1、 Circle.java 部件-圆
2、 Graph.java 部件-抽象类
3、 Line.java 部件-线
4、 Picture.java 部件-图
5、 Rectangle.java 部件-方
6、 PictureTest.java 带有main方法的测试类
=============== 1、 Circle.java
package composite;
//部件-圆
public class Circle extends Graph {
public void draw() {
System.out.println("Draw a circle.");
}
}
=============== 1 end
=============== 2、 Graph.java
package composite;
import java.util.Iterator;
//部件-抽象类
public abstract class Graph{
//画图
public abstract void draw();
//增加一个图形
public void add(Graph g){};
//删除一个图形组件
public void remove(Graph g){};
//获得组合体的内部部件
public Iterator<Graph> iter(){return null;};
}
=============== 2 end
=============== 3、 Line.java
package composite;
//部件-线
public class Line extends Graph {
public void draw() {
System.out.p
相关文档:
Java线程:线程的调度-合并
线程的合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法。
join为非静态方法,定义如下:
void join()
等待该线程终止。 ......
Java线程:线程的同步-同步块
对于同步,除了同步方法外,还可以使用同步代码块,有时候同步代码块会带来比同步方法更好的效果。
追其同步的根本的目的,是控制竞争资源的正确的访问,因此只要在访问竞争资源的时候保证同一时刻只能一个线程访问即可,因此Java引入了同步代码快的策略,以提高性能。
&nb ......
Java线程:新特征-阻塞队列
阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为 ......
Java线程:新特征-障碍器
Java5中,添加了障碍器类,为了适应一种新的设计需求,比如一个大型的任务,常常需要分配好多子任务去执行,只有当所有子任务都执行完成时候,才能执行主任务,这时候,就可以选择障碍器了。
障碍器是多线程并发控制的一种手段,用法很简单。下面给个例子:
import jav ......
Java 生成 EXCEL POI文档说明
POI版本:3.0.2-FINAL
下载地址: http://poi.apache.org/index.html
一般在项目中真正要实现这样一个表格的时候,例如项目需要制作报表等等,通常的做法都是事先把格式一切的东西都手动制作好(这个做好了的文件在实际的项目里我们称之为“数据模板”,简称“模板&rd ......