如何創建防止類直接實例化的工廠類?防止直接實例化的工廠類
說,我有類的評論,應該只從一個類CommentFactory實例化。 我不希望評論能夠直接實例化。
我想我可以做到這一點:
public partial class Comment
{
private Comment(){}
public Comment CreateComment(User user,string str)
{
Comment cmt=new Comment();
user.AddComment(cmt);
cmt.User=user;
return cmt;
}
}
此代碼乾淨嗎?
現在,我面臨的問題是Comment是Linq to SQL部分實現的部分類。 Linq to SQL創建了這個類的公共構造函數,那麼我怎樣才能繞過這個?有沒有'詭計'?
是的,我不想訪問Comment構造函數的代碼位於同一個程序集中。創建一個不同的程序集,我應該創建一個新的dll項目? – Attilah 2010-10-24 03:48:13
是的,如果你創建了一個新的dll項目,只要Comment的構造函數是'internal',那個項目中的任何代碼就不能創建Comment實例。 – 2010-10-24 04:00:28