擁有一個沒有方法但只有屬性的接口是一個好習慣嗎?接口良好實踐
Q
接口良好實踐
1
A
回答
1
如果您打算擁有一組具有類似基本結構的數據對象,這將有意義。
2
無論接口是否有方法,都沒關係。接口公開的成員應該受該接口客戶端的要求驅動。
5
想象一下,我們有兩個不同的類不能從同一個基礎派生:用戶和業務。在我們項目的某個階段,我們決定用戶和企業都需要參考地址的元素,例如Street1,Street2,City,State和Zip。我們也有一些代理類,需要能夠直接操縱這些值,而不管它們是在哪個類中定義的。
完成此操作的一種方法是創建一個如此類似的接口(在c#中的示例) ):
public interface IHasAddress {
public string Street1 { get; set; }
public string Street2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
現在,我們可以在其他的類,它下面的方法:
public static class Test {
public static void CheckZip(IHasAddress addressContainer) {
if (addressContainer == null) return;
if (addressContainer.Zip == "33314") addressContainer.State = "FL";
}
}
只要用戶和商業實現IHasAddress接口,下面的代碼可以編譯和工作如預期的那樣:
User user = new User();
Business business = new Business();
Test.CheckZip(user);
Test.CheckZip(business);
這是一個純粹的理論問題/解決方案,但它確實證明這種結構非常好的需求。
0
這是在Java獲得適當的枚舉前定義一堆相關常量的常用方法。
0
我看不出有什麼問題。如果你的應用程序需要一個合同來實現一堆屬性,那就這樣吧。
1
不要忘記,屬性只不過是通常命名的方法get _ PropertyName或設置_ PropertyName。
所以不,我沒有看到只有屬性的接口沒有問題。他們仍然是方法。