[英]C#, Program Design, Memory Usage
所以我在程序設計上非常業余。 我在uni完成了一些課程,但它們都專注於學習語法和非常基本的設計原理。
無論如何,我正在用C#.Net編寫一個客戶端,該客戶端通過RPC與rtorrent交互。 我將torrent客戶端信息存儲在ITorrentClient界面中,並將torrent信息存儲在Torrent對象中。 要獲取有關種子的數據,它需要從ITorrentClient調用一個函數,例如:
class Torrent
{
string _hash;
ITorrentClient _client;
public Torrent(ITorrentClient client)
{
this._client = client;
}
public double UploadSpeed
{
get
{
return _client.getTorrentUploadSpeed(_hash);
}
}
}
不幸的是,這意味着,如果您的洪流客戶端中有大量洪流(就像我一樣),您將在內存中浪費數百個ITorrentClient。 如何設計程序,使周圍沒有數百個無用的對象?
謝謝!
如果您的ITorrentClient
實現是引用類型(類)而不是值類型(結構),則每個Torrent
的_client
屬性將保存對ITorrentClient
的引用 , 而不是對實際對象的引用 。
考慮:
var client = new MyTorrentClient(); // TorrentClient implements ITorrentClient
var t1 = new Torrent(client);
var t2 = new Torrent(client);
內存中只有MyTorrentClient
的一個實例,並且t1
和t2
擁有MyTorrentClient
實例的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.