[英]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.