Как создать фабричный класс, который предотвращает прямое создание экземпляров класса?
скажем, у меня есть класс Comment, который должен создаваться только из класса CommentFactory.Я не хочу, чтобы Comment можно было создавать напрямую.
Я подумал, что смогу сделать это:
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 для SQL.и Linq to SQL создает открытый конструктор этого класса, так как я могу обойти это?есть ли какой-нибудь «трюк»?