通過裝飾(decorator)模式詮釋Eclipse的插件擴(kuò)展機(jī)制

          UML圖如下:

           

          抽象構(gòu)件角色:

          /*
          *@author 我為J狂 建立日期 2007-4-21
          *
          */

          package net.blogjava.lzqdiy.decorator;

          public interface IDE
          {
              
          void getFunction();
          }

          具體構(gòu)件角色:
          /*
          *@author 我為J狂 建立日期 2007-4-21
          *
          */

          package net.blogjava.lzqdiy.decorator;

          public class Eclipse implements IDE
          {

              
          public Eclipse()
              
          {
                  
              }

              
          public void getFunction()
              
          {
                   
              }


          }

          裝飾角色:
          /*
          *@author 我為J狂 建立日期 2007-4-21
          *
          */

          package net.blogjava.lzqdiy.decorator;

          public class PlugIn implements IDE
          {

              
          private IDE ide;
              
          public PlugIn(IDE ide)
              
          {
                  
          super();
                  
          this.ide=ide;
              }


              
          public void getFunction()
              
          {
                  ide.getFunction();
              }


          }

          具體裝飾角色:

          /*
          *@author 我為J狂 建立日期 2007-4-21
          *
          */

          package net.blogjava.lzqdiy.decorator;

          public class WTP extends PlugIn
          {

              
          public WTP(IDE ide)
              
          {
                  
          super(ide);
              }

              
          public void getFunction()
              
          {
                  
          // TODO Auto-generated method stub
                  System.out.println("具有了開發(fā)Web應(yīng)用程序的功能!");
              }

          }

          /*
          *@author 我為J狂 建立日期 2007-4-21
          *
          */

          package net.blogjava.lzqdiy.decorator;

          public class VE extends PlugIn
          {
              
          public VE(IDE ide)
              
          {
                  
          super(ide);
              }

              
          public void getFunction()
              
          {
                  System.out.println(
          "具有了開發(fā)圖形用戶界面程序的功能!");
              }


          }

          客戶端代碼:
          /*
          *@author 我為J狂 建立日期 2007-4-21
          *
          */

          package net.blogjava.lzqdiy.decorator;

          public class Client
          {

              
          /**
               * 
          @param args
               
          */

              
          public static void main(String[] args)
              
          {
                  IDE eclipse
          =new Eclipse();
                  IDE eclipseWithWTP
          =new WTP(eclipse);//得到安裝了WTP插件的Eclipse
                  eclipseWithWTP.getFunction();
                  IDE eclipseWithWTPandVE
          =new VE(eclipseWithWTP);//得到安裝了WTP和VE插件的Eclipse
                  eclipseWithWTPandVE.getFunction();
              }


          }



          posted on 2007-04-21 15:21 我為J狂 閱讀(1409) 評論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 福泉市| 赫章县| 永新县| 忻城县| 那曲县| 宁阳县| 夏河县| 罗定市| 岫岩| 偃师市| 屏东市| 陵川县| 遂宁市| 荃湾区| 宣武区| 武夷山市| 敦煌市| 塔城市| 乌海市| 昌图县| 香格里拉县| 伊金霍洛旗| 双辽市| 曲靖市| 商河县| 合阳县| 石狮市| 新平| 开远市| 武陟县| 清涧县| 扎鲁特旗| 嘉禾县| 理塘县| 景谷| 清水河县| 新巴尔虎右旗| 平远县| 广宁县| 招远市| 蒙阴县|