Не понял в чем проблема. Например, создать класс в нём объявить публичную статическую переменную static object locker = new object(); и использовать из вне.
safenoob: когда вы будете много программировать, у вас будут появляться проблемы, их решение вы и будете искать, вам будет понятно в чем именно эта проблема заключается и почему она решается вот так сложно и почему если делать проще, ничего не прокатит, потому что уже делали так сами и видите суть. Без опыта, никак. Попробуйте прочесть книгу, если уверены в своих силах.
"Объектно-ориентированное конструирование программных систем" Бертран Мейер
Если будет что-то не понятно, это говорит только об отсутствии опыта, этого самого говнокода, как вы пишете.
safenoob: обучиться писать правильную архитектуру без опыта практически невозможно. Судя по вашим вопросам, этого опыта у вас и нет. Полноценный постулат об ООП писал Мейер, если осилите и поймёте всю книгу, то таких вопросов у вас возникать не будет. Но, опять же, без богатого опыта вряд ли удастся её полностью понять.
Как итог, есть 2 пути:
1. Много программируете, пишете код для больших и серьёзных проектов.
2. Очень много изучаете большие и серьёзные проекты (этот путь быстрее, но значительно сложнее)
Александр: По сути, при передаче такого неоднозначного объекта, у класса будет не специфицированный контракт. Тестировать придётся комбинации всех значений в Config, а не только эти 2, хоть вы и знаете сами, что тут 2 поля используется, другие разработчики без чтения документации этого могут не знать.
Александр:
А если в конфиге не только текст, а какие нибудь сложные для создания данные хранятся?
При чтении, у стороннего разработчика может вызвать недоумение, зачем классу которому нужны 2 поля передали объект из 20 полей, в одном из которых вообще файловый поток хранится (например).
pozitiffcaat: Конечно является нарушением. Он и html парсит (1 отв.) и json парсит (2 отв.). Нужно добавить поддержку нового тега в html, мы будем править этот класс. Но, этот класс ещё и json парсит, а значит нужно после правок протестировать работу html и json. Очевидное нарушение принципа.