@sanphir

Как правильно использовать конструктор?

Возник холиварный вопрос с коллегами, как более правильно использовать конструктор объекта?

Вариант 1:
public class Circle
{
 public Circle()
 {
 }

 public void Draw()
 {
  //draw code
 }
}

class Program
{
 static void Main(string[] args)
 {
  var circle = new Circle();
  circle.Draw();
 }
}


или

Вариант 2
public class Circle
{
 public Circle()
 {
   this.Draw();
 }

 public void Draw()
 {
  //draw code
 }
}

class Program
{
 static void Main(string[] args)
 {
  var circle = new Circle();  
 }
}
  • Вопрос задан
  • 338 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Программирование
Любые ответы на любые вопросы
Конструктор должен иметь одну ответственность - инициализировать ресурсы. Рисовать он не должен.

Так что вариант два - в топку.

Если нужно одновременно создать и нарисовать - создайте для этого статический метод, который создаст, нарисует и вернет экземпляр.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Более правильно использовать его так, как требуется в конкретной ситуации. Если какой-то код нужно вызывать всегда, при создании объекта, разумнее поместить его в конструктор. Если вы передаёте в конструктор флаг, от которого зависит, будет ли внутри запущен тот или иной метод, это сигнал, что нужно либо создать специализированные дочерние классы, либо вызывать метод после инициализации объекта руками там, где это требуется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы