- 浏览: 197577 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
[关键字]:java,design pattern,设计模式,《Java与模式》学习,composite,合成模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys/
[正文]:
透明的合成模式
package pattern.composite.transparent;
import java.util.*;
/**
* 透明的合成模式:Composite Pattern
* @version 2009-6-3
* @author Winty(wintys@gmail.com)
*/
public class TransparentCompositeTest{
public static void main(String[] args){
Graphics g1 , g2;
Graphics p1 , p2;
g1 = new Line();
g2 = new Circle();
p1 = new Picture();
p2 = new Picture();
g1.draw();
g2.draw();
System.out.println("");
p1.add(g1);
p1.add(g2);
p1.draw();
System.out.println("");
p2.add(g1);
p2.add(g2);
p2.add(p1);
p2.draw();
}
}
/**
* 抽象Component角色
*/
interface Graphics{
void draw();
void add(Graphics g);
void remove(int i);
Graphics getChild(int i);
}
/**
* Leaf角色
*/
class Line implements Graphics{
@Override
public void draw(){
System.out.println("draw a line");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Leaf角色
*/
class Circle implements Graphics{
@Override
public void draw(){
System.out.println("draw a circle");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Composite角色
*/
class Picture implements Graphics{
private List<Graphics> graphics;
public Picture(){
graphics = new ArrayList<Graphics>();
}
@Override
public void draw(){
Iterator<Graphics> it = graphics.iterator();
while(it.hasNext()){
Graphics g = it.next();
g.draw();
}
}
@Override
public void add(Graphics g){
graphics.add(g);
}
@Override
public void remove(int i){
graphics.remove(i);
}
@Override
public Graphics getChild(int i){
return graphics.get(i);
}
}
import java.util.*;
/**
* 透明的合成模式:Composite Pattern
* @version 2009-6-3
* @author Winty(wintys@gmail.com)
*/
public class TransparentCompositeTest{
public static void main(String[] args){
Graphics g1 , g2;
Graphics p1 , p2;
g1 = new Line();
g2 = new Circle();
p1 = new Picture();
p2 = new Picture();
g1.draw();
g2.draw();
System.out.println("");
p1.add(g1);
p1.add(g2);
p1.draw();
System.out.println("");
p2.add(g1);
p2.add(g2);
p2.add(p1);
p2.draw();
}
}
/**
* 抽象Component角色
*/
interface Graphics{
void draw();
void add(Graphics g);
void remove(int i);
Graphics getChild(int i);
}
/**
* Leaf角色
*/
class Line implements Graphics{
@Override
public void draw(){
System.out.println("draw a line");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Leaf角色
*/
class Circle implements Graphics{
@Override
public void draw(){
System.out.println("draw a circle");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Composite角色
*/
class Picture implements Graphics{
private List<Graphics> graphics;
public Picture(){
graphics = new ArrayList<Graphics>();
}
@Override
public void draw(){
Iterator<Graphics> it = graphics.iterator();
while(it.hasNext()){
Graphics g = it.next();
g.draw();
}
}
@Override
public void add(Graphics g){
graphics.add(g);
}
@Override
public void remove(int i){
graphics.remove(i);
}
@Override
public Graphics getChild(int i){
return graphics.get(i);
}
}
运行结果:
draw a line
draw a circle
draw a line
draw a circle
draw a line
draw a circle
draw a line
draw a circle
draw a circle
draw a line
draw a circle
draw a line
draw a circle
draw a line
draw a circle
发表评论
-
[原]导出CodeHelp的数据
2009-03-16 17:05 806搬到blogjava总得发点原创的东西吧。 Code ... -
[原]使用Ant实现zip压缩解压功能
2009-03-19 13:17 1674[关键词]:ant,zip,unzip,Apache,压缩,解 ... -
[原]EL函数的使用
2009-04-03 21:29 1074[标题]:EL函数的使用 [时 ... -
[原]对Class.getMethod()的调用未经检查
2009-04-05 15:52 2323[标题]:对Class.getMethod()的调用未经检查 ... -
[原]JNI简单示例
2009-04-05 21:33 1005[标题]:JNI简单示例 [时 ... -
[原]简单工厂模式
2009-04-14 12:26 721[关键字]:java,设计模式,简单工厂,《java与模式》 ... -
[原]工厂模式
2009-04-14 12:32 695[关键字]:java,design pattern,设计模式, ... -
[原]抽象工厂模式
2009-04-14 19:25 721[关键字]:java,design pattern,设计模式, ... -
[原]方法返回值为数组的另一种表示方法
2009-04-25 22:28 938[时间]:2009-04-25 今天看到JDK的源代码 ... -
[原]SAX使用示例
2009-04-26 19:18 2020[标题]:[原]SAX使用示例 [时间]:2009-4-25 ... -
[原]责任链模式
2009-05-09 16:47 696[关键字]:java,design pattern,设计模式, ... -
[原]状态模式
2009-05-18 23:03 747[关键字]:java,design pattern,设计模式, ... -
[原]策略模式
2009-05-21 22:21 663[关键字]:java,design pattern,设计模式, ... -
[原]VC实现重启路由器
2009-05-29 23:36 2047[标题]:[原]VC实现重启路 ... -
[原]远程登录Windows Server 2003的当前会话
2009-06-01 11:19 2034[标题]:远程登录Windows Server 2003的当前 ... -
[原]Tomcat crossContext
2009-06-01 12:27 6025[标题]:Tomcat crossContext [时间]:2 ... -
[原]装饰模式1
2009-06-07 22:33 679[关键字]:java,design pattern,设计模式, ... -
[原]装饰模式3-Grep
2009-06-07 22:42 660[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-安全的
2009-06-08 22:27 804[关键字]:java,design pattern,设计模式, ... -
[原]模板方法模式
2009-06-15 17:05 638[关键字]:java,design pattern,设计模式, ...
相关推荐
合成模式:合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就 合成模式 是一个处理对象的树结构的模式。 合成模式把部分与整体的关系用树结构表示出来。 合成模 式使得客户端把一个个单独的...
� 良好的盈利模式( 3/7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利 益 。 将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。 � Android 的源代码遵循 Apache...
更实用的原图与效果图对比功能;更丰富的相片信息显示面板;硬件图片捕捉功能;图片批处理转换工具;GIF动画闪图编辑工具;摄影展示框工具;精美日历制作;涂鸦工具;与多媒体巨匠“数码大师”软件协同工作等实用...
采用PNG格式无损压缩和通道技术,水印边缘不会产生任何杂色,达到最佳的合成效果; 内置图片的剪切、自动对比度、手动对比度等功能,让图片处理、加水印一步到位; 支持水印透明度和旋转角度的任意调整,加注效果更...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...