Я пытаюсь заставить колеса крутиться на большом проекте в C #. Мой предыдущий опыт был в Delphi, где по умолчанию каждая форма создавалась при запуске приложения, и ссылки на формы содержались в (задыхающихся) глобальных переменных. Поэтому я пытаюсь приспособить свое мышление к 100% объектно-ориентированной среде, и моя голова немного кружится.
В моем приложении будет большая коллекция классов. Большинству этих классов нужен только один экземпляр. Вот я и подумал: статические классы. Я не совсем уверен, почему, но многое из того, что я здесь прочитал, говорит о том, что если мой класс будет содержать состояние, которое, как я понимаю, означает любые значения свойств, я должен вместо этого использовать одноэлементную структуру. Хорошо. Но есть люди, которые по причинам, которые избегают меня, думают, что синглтоны тоже злые.
Ни один из этих классов не может быть использован где-либо еще, кроме этой программы. Таким образом, они могут нормально работать как обычные объекты (против синглетонов или статических классов)
Тогда возникает проблема взаимодействия между объектами. Я испытываю желание создать класс Global, полный общедоступных статических свойств, ссылающихся на отдельные экземпляры многих из этих классов. Я также подумал о том, чтобы просто сделать их свойства (статические или экземпляры, не уверен, какие) из MainForm. Тогда я бы хотел, чтобы каждый из моих классов знал о MainForm как о Владельце. Тогда различные объекты могут ссылаться друг на друга как Владелец. Объект1 , Владелец. Объект2 и т. Д.
Боюсь, у меня закончились электронные чернила, или, по крайней мере, я облагаю терпением того, кто достаточно любезен, чтобы остаться со мной так долго. Надеюсь, я четко объяснил свое состояние полного замешательства. Я просто ищу советы по лучшим практикам в моей ситуации. Все отзывы приветствуются и приветствуются.
Заранее спасибо,
Дэвид Дженнингс