作者:PeterXu 來源:Blog.CSDN Blog: http://blog.111cn.net/peterreg/
著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。本文地址:http://blog.111cn.net/peterreg/archive/2008/04/08/2259404.aspx
類間的傳值在我們的日常編程中,有著舉足輕重的作用。各種各樣的實現方式在程式的擴充性和效能上有著很大的影響。
例如:類A的對象執行個體了類B,對象B中要訪問對象A的一個屬性A1。
class A
{
private int m_iA1;
public int A1
{
get { return this.m_iA1; }
set { this.m_iA1 = value; }
}
}
1. 將對象A作為參數傳給類B,即通過屬性或建構函式的形式將A傳給B,然後通過B中對象A的引用來調用A1。
class B
{
private A m_oA;
public B(A a)
{
this.m_oA = a;
}
}
class B
{
private A m_oA;
public B()
{
}
public A A
{
set { this.m_oA = value; }
}
}
缺點:類A和類B的耦合度較高,且一旦有其它類想起到類A的功能時,類A需做較多擴充。
改進:對類A設計出統一的抽象,採用介面或抽象類別的模式,在一定程式上可以降低一定的耦合。
關於介面和抽象類別的知識,可以參考我以前的一篇文章《 》
2. 採用中間檔案的格式,如XML、文字檔及資料庫等
缺點:效率不高、檔案格式需統一,檔案需要進行打包和解包
優點:可以傳輸大量的資訊
3. 共用記憶體空間
缺點:有一定的複雜性,網上有部分參考代碼
4. 類A的屬性採用靜態模式Static
缺點:當有些屬性不能設為靜態屬性時,此方法失效
5.代理
缺點:效率稍微低一點,影響不大
優點:程式的封裝性和擴充性較好