首页 > 代码库 > 工厂方法和观察者模式的一个真实案例
工厂方法和观察者模式的一个真实案例
1 import java.util.ArrayList; 2 3 class Manager 4 { 5 private String name; //经理的名字 6 public Manager(String string) { 7 name=string; 8 } 9 public void update(String id) 10 { 11 System.out.println("哈哈"+id+"房子已经被买了,好开心"); 12 } 13 14 15 } 16 //抽象房子 17 abstract class House 18 { 19 private String id; 20 private int price; 21 private int status=0;// status=0没有被卖掉 22 private ArrayList<Manager> m=new ArrayList<Manager>(); 23 public void setStatus() 24 { 25 status=1; //卖房子了 26 for(Manager ma:m) 27 { 28 ma.update(id); 29 } 30 } 31 public House(String id,int price) 32 { 33 this.id=id; 34 this.price=price; 35 } 36 public void addObserver(Manager ma) 37 { 38 m.add(ma); 39 } 40 41 42 } 43 //具体房子 44 class BigHouse extends House 45 { 46 public BigHouse(String id, int price) { 47 super(id, price); 48 // TODO Auto-generated constructor stub 49 } 50 51 public void method() 52 { 53 System.out.println("BigHouse"); 54 55 } 56 } 57 //具体房子 58 class smallHouse extends House 59 { 60 61 public smallHouse(String id, int price) { 62 super(id, price); 63 // TODO Auto-generated constructor stub 64 } 65 66 public void met() 67 { 68 System.out.println("smallHouse"); 69 } 70 } 71 //工厂接口 72 interface factory 73 { 74 public House getInstance(String id,int price); 75 76 } 77 //大房子工厂 78 class BigFactory implements factory 79 { 80 81 @Override 82 public House getInstance(String id, int price) { 83 // TODO Auto-generated method stub 84 return new BigHouse(id,price); 85 } 86 87 88 } 89 class smallFactory implements factory 90 { 91 92 @Override 93 public House getInstance(String id, int price) { 94 // TODO Auto-generated method stub 95 return new smallHouse(id,price); 96 } 97 98 99 100 }101 102 103 public class 设计模式1 {104 105 /**106 * @param args107 */108 public static void main(String[] args) {109 // TODO Auto-generated method stub110 //创建一大房子对象111 House h1=new BigFactory().getInstance("0001", 10000000);112 //一个小房子对象113 ((BigHouse) h1).method();114 House h2=new smallFactory().getInstance("333", 100);115 Manager ma=new Manager("zhangsan");116 h2.addObserver(ma);117 h2.setStatus();118 119 120 121 122 123 //卖掉124 125 126 127 128 }129 130 }
http://blog.csdn.net/lovelion/article/details/7430515
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。