通過(guò)裝飾(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("具有了開(kāi)發(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(
          "具有了開(kāi)發(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) 評(píng)論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 方山县| 关岭| 德昌县| 伊春市| 襄汾县| 永靖县| 中西区| 曲阳县| 怀来县| 张家港市| 乌恰县| 玉山县| 来凤县| 南木林县| 女性| 平凉市| 措勤县| 永州市| 邵东县| 建始县| 崇明县| 乌拉特后旗| 民县| 司法| 阳江市| 淮北市| 冕宁县| 芦溪县| 新和县| 吉林省| 宁南县| 临西县| 孝昌县| 鹤庆县| 新竹县| 清水河县| 安庆市| 钟祥市| 彭山县| 大方县| 灵寿县|