ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>免费一区二区,欧美系列精品,国产美女视频一区二区三区 http://www.aygfsteel.com/wz5270/category/16567.htmlzh-cnWed, 28 Feb 2007 03:58:14 GMTWed, 28 Feb 2007 03:58:14 GMT60Simple Factory 模式http://www.aygfsteel.com/wz5270/archive/2006/10/25/77162.htmlž®¨å¥‡ž®¨å¥‡Wed, 25 Oct 2006 04:45:00 GMThttp://www.aygfsteel.com/wz5270/archive/2006/10/25/77162.html         假设有一个音乐盒工厂,购买音乐盒的™å‘Ö®¢ä¸çŸ¥é“音乐盒是如何制作的,他只要知道如何播æ”ùNŸ³ä¹ç›’ž®±å¯ä»¥äº†,以UML¾cÕd›¾æ¥è¡¨½CÞZ»¥ä¸Šæ¦‚å¿?

simpleFactory-1.jpg
         如图上所½C?MusicBoxDemo代表了客æˆïLš„角色,它只依赖于IMusicBox界面,而不兛_¿ƒæ˜¯å¦‚何实现的.如何产生IMusicBoxç”±MusicBoxFactory完成.以一个简单的½E‹åºæ¥å®žçŽîC¸Šé¢è¿™ä¸ªUML¾cÕd›¾:

  • IMusicBox.java
    public interface IMusicBox {
public void play();
}
  • PianoBox.java
   public class PianoBox implements IMusicBox {
public void play() {
System.out.println("播放钢琴音乐:)");
}
}
  • ViolinBox.java
   public class ViolinBox implements IMusicBox {
public void play() {
System.out.println("播放ž®æç´éŸ³ä¹^_^");
}
}
  • MusicBoxFactory.java
    public class MusicBoxFactory {
public static IMusicBox createMusicBox(String name)
throws InstantiationException,
IllegalAccessException,
ClassNotFoundException {
// ˜q™è¾¹ä½¿ç”¨çš„æ˜¯Javaçš„Reflection机制来äñ”生实ä¾?br /> // 不过客户端不用管å•?br /> // 以后ž®Þq®—改变了这边的½E‹åºåQŒå®¢æˆïL«¯½E‹åºæ˜¯ä¸ç”¨æ›´æ”¹çš„
return (IMusicBox) Class.forName(name).newInstance();
}
}
  • MusicBoxDemo.java
   public class MusicBoxDemo {
public static void main(String[] args) throws Exception {
playMusicBox(MusicBoxFactory.createMusicBox("PianoBox"));
playMusicBox(MusicBoxFactory.createMusicBox("ViolinBox"));
}

public static void playMusicBox(IMusicBox musicBox) {
musicBox.play();
}
}

ç”׃ºŽå®¢æˆ·ç«¯åªä¾èµ–与IMusicBox介面åQŒæ‰€ä»¥å³ä½¿æ‚¨æ—¥åŽæ”¹å˜äº†createMusicBox()中的实现方式åQŒå¯¹å®¢æˆ·ç«¯æ˜¯ä¸€ç‚¹åª„响也没有çš?

来看看Simple Factory的类¾l“æž„åQ?br />simpleFactory-2.jpg
客户只要面对FactoryåQŒå®¢æˆ·ä¾èµ–于产品介面åQŒäñ”品的具体实现是可以与客戶隔开的,它们也是可以抽换çš?



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÒÁ´ºÊÐ| Áé´¨ÏØ| ²ìÑÅÏØ| ̨ÖÐÊÐ| ´ï¶û| Æ½ÈªÏØ| À¼¿¼ÏØ| ÉÇβÊÐ| Äϰ²ÊÐ| ÅìºþÏØ| ÐÂÆ½| Óñ»·ÏØ| ÉÇÍ·ÊÐ| ÅíÖÝÊÐ| ËìÏªÏØ| ÑÓ½òÏØ| ÔÆÃÎÏØ| ÉÛÑôÏØ| ³¤Í¡ÏØ| ¼Ò¾Ó| Ã×Ò×ÏØ| Àû´¨ÊÐ| Ê¯Â¥ÏØ| ¶ýÔ´ÏØ| ÎäÆ½ÏØ| Î÷¼ªÏØ| ÐÝÄþÏØ| º£µíÇø| ÑôÉ½ÏØ| ÏÃÃÅÊÐ| Âå´¨ÏØ| íã¿ÚÏØ| ÃÉÉ½ÏØ| ÁÙÏÄÏØ| ²ªÀûÏØ| ÓÑÒêÏØ| ÅͰ²ÏØ| ÓݳÇÏØ| ÌìµÈÏØ| ²ÔÎàÏØ| À³ÎßÊÐ|