Я пишу решение на основе Factory Pattern на C#.Пользовательские правила - Отключить выполнение конструктора на дочернем классе
Если есть Abstract class
под названием Animal
, и любой подкласс класса Animal
будет создан через Factory Pattern, передав Type.
public abstract class Animal
{
protected abstract void Constructor();
public Animal()
{
Constructor();
}
}
public class Dog : Animal
{
protected override void Constructor()
{
//Constructor Code here
}
}
Я не привычка любого из моего товарища по команде, чтобы злоупотребить код выше, объявив свой собственный открытый конструктор в своем классе ребенка (например: кошка) и вызовите конструктор непосредственно (например: Animal cat = new Cat();
) без использования завод.
Как создать правило анализа кода, которое будет вызывать ошибку при компиляции такого класса?
Честно говоря, я не уверен, что _why_ вы хотели бы сделать это. Что вы можете использовать только с помощью конструкторов? Может быть, вы должны показать нам код для завода? О, и вы также можете прочитать о [CA2214] (https://msdn.microsoft.com/en-us/library/ms182331.aspx) и о [при инициализаторах] (https: //blogs.msdn .microsoft.com/ericlippert/2008/02/18/почему-Do-инициализаторы перспективе-в-противоположному заказ-как-конструкторы-части-два /). –