真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

singletonclass是什么

這篇文章主要介紹“singleton class是什么”,在日常操作中,相信很多人在singleton class是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”singleton class是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司專注于商城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供商城營(yíng)銷型網(wǎng)站建設(shè),商城網(wǎng)站制作、商城網(wǎng)頁(yè)設(shè)計(jì)、商城網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造商城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供商城網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

SystemVerilog中Singleton class是指只有一個(gè)對(duì)象(object)的類。這個(gè)對(duì)象只創(chuàng)建一次,為所需的全局變量提供一個(gè)namespaces。

Singleton class定義全局的行為,例如printing。

Singleton class 在compile-time創(chuàng)建一個(gè)對(duì)象,然后在run-time操作其中的成員,不需要用戶在仿真時(shí)在建立一個(gè)新的實(shí)例。

program top;class singleton;       int unsigned var1;
  //  Need to declare it as static, as  it is accessed by static method 'create'      static  singleton single;
  //  Declared as 'protected', so  user can't directly create instance of this class      protected functionnew();      endfunction:new
 static functionsingleton  create();         if (single ==null) begin           $display("Object  single is null, so creating new object");           single =new();         end         return single;      endfunction:create    endclass:singleton      singleton s1,  s2;    initial begin         s1 = singleton ::create();         $display (" 1  : s1.var1 = %0d",  s1.var1);         s1.var1 =10;         $display (" 2  : s1.var1 = %0d",  s1.var1);
    s2 = singleton ::create();         $display (" 3  : s2.var1 = %0d",  s2.var1);
    s2.var1 =20;         $display (" 4  : s2.var1 = %0d",  s2.var1);         $display (" 5  : s1.var1 = %0d",  s1.var1);      end    endprogram

Output:    

//   1 : s1.var1 = 0    //   2 : s1.var1 = 10    //   3 : s2.var1 = 10    //   4 : s2.var1 = 20    //   5 : s1.var1 = 20

A singleton object is a globally accessiblestatic object providing customizable service methods.

Synopsys UVM1.2 Workshop  

在下面的例子中:

class service_class;           protected static service_class me =get();           static function service_class get();                      if(me = null) me = new() ;                       return me ;            endfunctionextern virtual function void error (string msg) ;endclass

error method需要用戶自行定義所需要的行為。

在UVM的workshop中使用了一個(gè)名稱為proxy_class的singleton class很好地詮釋了其在factory機(jī)制的應(yīng)用。 

class proxy_class#(type T =base) ;           type proxy_class#(T)  this_type ;  //just for coding convenience           protected function new();endfunction
static function this_type get();           if(me== null) me = new() ;           return me;endfunctionstatic function T create();           create=new() ;functionendcase

class driver xtends base;           typedef proxy_class(driver) proxy ;endclass
class monitor xtends base;           typedef proxy_class(monitor) proxy ;endclass

class environment ;           driver drv ;           monitor mon;           function new;           drv = driver::proxy::create() ;           mon = monitor::proxy::create() ;    endfunctionendclass

這個(gè)proxy class提供了一個(gè)創(chuàng)建不同的singleton bject的機(jī)制。

為了使proxy class更有意義,我們需要一個(gè)virtual base classfactory機(jī)制。proxy class根據(jù)不同的factory注冊(cè)和base class生成特定的proxy object。

到此,關(guān)于“singleton class是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


網(wǎng)頁(yè)名稱:singletonclass是什么
鏈接URL:http://weahome.cn/article/pssdhh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部