java设计模式之观察者模式
2015-07-09 17:37
531 查看
实例代码:
// 抽象类 Girl public abstract class Girl { String description = "no particular"; public String getDescription(){ return description; } } // 美国女孩 public class AmericanGirl extends Girl { public AmericanGirl() { description = "+AmericanGirl"; } } // 国产妹子 public class ChineseGirl extends Girl { public ChineseGirl() { description = "+ChineseGirl"; } } // 装饰者 public abstract class GirlDecorator extends Girl { public abstract String getDescription(); } // 下面以美国女孩示例 // 给美国女孩加上金发 public class GoldenHair extends GirlDecorator { private Girl girl; public GoldenHair(Girl g) { girl = g; } @Override public String getDescription() { return girl.getDescription() + "+with golden hair"; } } // 加上身材高大的特性 public class Tall extends GirlDecorator { private Girl girl; public Tall(Girl g) { girl = g; } @Override public String getDescription() { return girl.getDescription() + "+is very tall"; } } // 检验一下 public class Main { public static void main(String[] args) { Girl g1 = new AmericanGirl(); System.out.println(g1.getDescription()); GoldenHair g2 = new GoldenHair(g1); System.out.println(g2.getDescription()); Tall g3 = new Tall(g2); System.out.println(g3.getDescription()); // 你也可以一步到位 // Girl g = new Tall(new GoldenHair(new AmericanGirl())); } }
可以理解为:
当一个对象更新信息时,它会通知它的观测者们,并将自己的信息传递给它们,使它们更新自己的信息。相关文章推荐
- yiluo-----Eclipse 插件Maven在使用 add dependency,找不到包,解决办法
- 关于struts2中action获取参数的三种方法
- java key tool 命令
- JAVA中转义字符的使用
- Java接收串口数据
- java-多线程篇<上>
- Java常用正则表达式验证工具类RegexUtils.java
- SSH学习快速入门
- java设计模式之装饰者模式
- Java7并发编程实战(一) 线程的中断
- Java线程池学习笔记一
- java-集合上
- Java垃圾回收机制_(转载)
- LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
- eclipse 中 properties 显示中文为\
- Java中的线程同步技术
- java中文件的读取和写入
- Spring学习(20)--- Schema-based AOP(基于配置的AOP实现) -- 配置切入点pointcut
- java.io.Serializable浅析
- 关于使用Java代码解决兔子问题