Вопросы с тегом «constructors»

6
Как написать конструкторы, которые могут неправильно создать экземпляр объекта
Иногда вам нужно написать конструктор, который может потерпеть неудачу. Например, скажем, я хочу создать экземпляр объекта с путем к файлу, что-то вроде obj = new Object("/home/user/foo_file") Пока путь указывает на соответствующий файл, все в порядке. Но если строка не является допустимым путем, все должно сломаться. Но как? Ты мог: бросить …

2
Разве плохо создавать классы, единственной целью которых является неявное преобразование в другой класс?
Представьте себе ситуацию, когда мы используем библиотеку, которая позволяет вам создавать Circleобъекты, где вы можете указать радиус и центр круга, чтобы определить его. Однако по какой-то причине он также принимает обязательный flavourпараметр. Теперь предположим, что мне действительно нужно использовать Circleв моем собственном приложении, но для целей моего приложения я могу …

3
Свойства Stubbing с частными сеттерами для тестов
У нас есть объект public class MyObject{ protected MyObject(){} public string Property1 {get;private set;} public string Property2 {get;private set;} public string Property3 {get;private set;} public string Property4 {get;private set;} public string Property5 {get;private set;} public string Property6 {get;private set;} public string Property7 {get;private set;} public string Property8 {get;private set;} public …

4
Где должен быть полностью инициализирован объект в CQRS + ES: в конструкторе или при применении первого события?
Похоже, что в сообществе ООП широко распространено мнение, что конструктор класса не должен оставлять объект частично или даже полностью неинициализированным. Что я имею в виду под «инициализацией»? Грубо говоря, атомарный процесс, который приводит вновь созданный объект в состояние, в котором содержатся все его классовые инварианты. Это должно быть первое, что …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.