2016-07-31 3 views
0

инкапсуляция:Передача аргументов конструктору нарушает инкапсуляцию?

  • механизм языка для ограничения прямого доступа к некоторым компонентам объекта.
  • Языковая конструкция, которая облегчает объединение данных с помощью методов, работающих с этими данными.
class Cat 
{ 
    private string catName; 
    private CatBreed catBreed; 

    public Cat(string name, CatBreed breed) 
    { 
     catName = name; 
     catBreed = breed; 
    } 

    // methods that use catName and catBreed fields 
    ... 
} 

Использование:

var cat = new Cat("Thomas", CatBreed.Abyssinian); 
... 

коллеги пытались убедить, что передача аргументов в конструктор нарушает инкапсуляцию, потому что внешняя система знает о внутренней реализации класса Cat. Они строгие?

ответ

0

Что параметры конструктора сообщают любой внешней системе о реализации классов?
Звучит как вздор для меня.

Смежные вопросы