<source id="4vppl"><ins id="4vppl"></ins></source>
<u id="4vppl"><sub id="4vppl"><label id="4vppl"></label></sub></u>
<object id="4vppl"></object>
  • <u id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></u>

    <object id="4vppl"></object>
    <b id="4vppl"><sub id="4vppl"><tr id="4vppl"></tr></sub></b>

      <i id="4vppl"><thead id="4vppl"></thead></i>

      <thead id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></thead>

      當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > D語言動態創建對象-D最新功能

      D語言動態創建對象-D最新功能
      2010-01-13 21:13:27  作者:  來源:

      D語言動態創建對象-D最新功能
       
      我認為這是D提供的又一個重量級的功能.閑言少敘,代碼說話!

      保存為cre.d,使用dmd cre.d編譯.

      Java代碼
      module cre;  
       
      import std.stdio;  
       
      interface IPrinter  
      {    
        void print();  
        void init(char[] a);  
      }  
       
      class foo :IPrinter  
      {    
        void print()  
        {  
          writefln("foo OK  "~fb);      
        }  
          
        void init(char[] a)  
        {  
          fb = " Hollo "~a;  
        }  
          
        char[] fb;  
      }  
       
       
      class fbb :IPrinter  
      {    
        void print()  
        {  
          writefln("fbb:OK! "~fb);      
        }  
          
        void init(char[] a)  
        {  
          fb = "Thank you "~a;  
        }  
          
        char[] fb;  
      }  
       
      //IOC Factory.  
      class Factory(T)  
      {    
        static T create(char[] Name)  
        {  
          T instance =cast(T)Object.factory(Name);  
          assert(instance);   
          return instance;      
        }     
      }  
       
       
      int main()  
      {  
        writefln("Factory Test!");  
        alias Factory!(IPrinter) PT;  
        IPrinter a = PT.create("cre.foo");  
        a.init("Walter!");   
        a.print();  
          
        IPrinter b = PT.create("cre.fbb");  
        b.init("Walter!");   
        b.print();   
        return 1;  

      module cre;

      import std.stdio;

      interface IPrinter

        void print();
        void init(char[] a);
      }

      class foo :IPrinter

        void print()
        {
          writefln("foo OK  "~fb);   
        }
       
        void init(char[] a)
        {
          fb = " Hollo "~a;
        }
       
        char[] fb;
      }


      class fbb :IPrinter

        void print()
        {
          writefln("fbb:OK! "~fb);   
        }
       
        void init(char[] a)
        {
          fb = "Thank you "~a;
        }
       
        char[] fb;
      }

      //IOC Factory.
      class Factory(T)

        static T create(char[] Name)
        {
          T instance =cast(T)Object.factory(Name);
          assert(instance);
          return instance;   
        }  
      }


      int main()
      {
        writefln("Factory Test!");
        alias Factory!(IPrinter) PT;
        IPrinter a = PT.create("cre.foo");
        a.init("Walter!");
        a.print();
       
        IPrinter b = PT.create("cre.fbb");
        b.init("Walter!");
        b.print();
        return 1;
      }


      根據這個功能,結合動態鏈接庫,可以提供簡單插件的功能了!!!
      實現了IOC,針對抽象進行依賴.

      更多信息請登陸http://61.191.27.74:802/ 最后,歡迎加入http://61.191.27.74:802/的會員


      安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
      相關熱詞搜索:對象 語言 功能
      国产午夜福三级在线播放_亚洲精品成a人片在线观看_亚洲自慰一区二区三区_久久棈精品久久久久久噜噜
      <source id="4vppl"><ins id="4vppl"></ins></source>
      <u id="4vppl"><sub id="4vppl"><label id="4vppl"></label></sub></u>
      <object id="4vppl"></object>
    1. <u id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></u>

      <object id="4vppl"></object>
      <b id="4vppl"><sub id="4vppl"><tr id="4vppl"></tr></sub></b>

        <i id="4vppl"><thead id="4vppl"></thead></i>

        <thead id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></thead>
        亚洲欧美精品专区极品 | 特级全黄久久久久久 | 在线观看网站深夜免费AV | 日韩不卡在线视频 | 一级中文在线播放 | 日本中文一二区有码在线 |