ПРИМЕЧАНИЕ. Извините за длинный вопрос!
Я пытаюсь понять некоторые ключевые области, стоящие за объектной ориентацией, и я не мог так или иначе решить мой конкретный вопрос.
Скажем, у меня есть объект, полный прекрасных данных. Класс bob.
Bob myBob = new Bob("This string is data");
Скажем, я хочу сохранить содержимое myBob в xml файле (bob.xml)
Должен ли я заставить объект действовать на bob, чтобы написать содержимое, или мне нужно, чтобы myBob сделал это?
Случай 1: действие над объектом
Writer myWriter = new Writer(myBob, "C:\\bob.xml");
Случай 2: Сохранить метод
myBob.Save("C:\\bob.xml");
Некоторые люди поддерживают один вариант, поскольку это означает, что если код для записи файлов был изменен, ему не нужно обновлять каждый метод Save; Я предполагаю, что повторное использование кода повторится. Моя проблема заключается в получении всех данных из объектов, которые могут иметь личные данные без доступа.
Случай для второго варианта заключается в том, что метод действует только на данные, хранящиеся в объекте, и то, как он должен быть. Отсутствие помех от других объектов.
Или ответ на мой вопрос является одним из тех вопросов, которые зависят от случая? Если да, то откуда вы знаете, когда один метод предпочтительнее другого?