第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

標(biāo)記界面的目的是什么?

標(biāo)記界面的目的是什么?

冉冉說 2019-08-16 17:10:37
標(biāo)記界面的目的是什么?標(biāo)記界面的目的是什么?
查看完整描述

3 回答

?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

標(biāo)記接口用于將類的功能標(biāo)記為在運行時實現(xiàn)特定接口。

界面設(shè)計.NET類型設(shè)計準(zhǔn)則-界面設(shè)計勸阻贊成使用C#屬性的使用的標(biāo)記接口,但作為@Jay Bazuzi指出,更容易檢查比屬性標(biāo)記的接口:o is I

所以不是這樣的:

public interface IFooAssignable {} public class FooAssignableAttribute : IFooAssignable {
    ...}

.NET指南建議您這樣做:

public class FooAssignableAttribute : Attribute {
    ...}[FooAssignable]public class Foo {    
   ...}


查看完整回答
反對 回復(fù) 2019-08-16
?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

由于每個其他答案都說“應(yīng)該避免它們”,因此解釋原因會很有用。

首先,為什么使用標(biāo)記接口:它們的存在是為了允許使用實現(xiàn)它的對象的代碼檢查它們是否實現(xiàn)了所述接口,如果有,則以不同的方式處理對象。

這種方法的問題在于它破壞了封裝。對象本身現(xiàn)在可以間接控制外部使用方式。此外,它了解將要使用的系統(tǒng)。通過應(yīng)用標(biāo)記接口,類定義表明它希望用于檢查標(biāo)記存在的某個地方。它隱含地了解它所使用的環(huán)境,并試圖定義它應(yīng)該如何被使用。這違背了封裝的想法,因為它了解完全在其自身范圍之外存在的系統(tǒng)的一部分的實現(xiàn)。

在實際水平上,這降低了可移植性和可重用性。如果在不同的應(yīng)用程序中重用該類,則需要同時復(fù)制該接口,并且在新環(huán)境中它可能沒有任何意義,使其完全冗余。

因此,“標(biāo)記”是關(guān)于類的元數(shù)據(jù)。這個元數(shù)據(jù)不是由類本身使用,只對(某些?。┩獠靠蛻舳舜a有意義,因此它可以以某種方式處理對象。因為它只對客戶端代碼有意義,所以元數(shù)據(jù)應(yīng)該在客戶端代碼中,而不是類API。

一個“標(biāo)記接口”和普通接口之間的區(qū)別是,方法的接口告訴外面的世界怎么可以使用,而空的接口意味著它告訴外面的世界如何應(yīng)該被使用。


查看完整回答
反對 回復(fù) 2019-08-16
  • 3 回答
  • 0 關(guān)注
  • 796 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號