Установка того же стиля дважды к различным экземплярам в коде

Уже есть довольно много ответов о том, где найти информацию о программировании объектно-ориентированным способом. Действительно, есть много замечательных книг, в которых будут определены основные понятия, однако я думаю, что вопрос был больше в том, как «придерживаться этого» посредством разработки для кого-то новичка в методе.

Из многих концепций в объектно-ориентированном программировании основной, которая будет держать вас как новичка, является инкапсуляция. Мой класс знает, как позаботиться о себе? Есть ли в моем классе поведение? Если этого не произойдет, то у вас нет класса, у вас есть структура, и вы, вероятно, будете писать множество процедур для изменения его состояния (как говорится, «вы вернулись к написание C на Java "). Разве мой класс только публично предоставляет методы, необходимые для его использования? Эти вопросы, возможно, не очень тщательно прорабатываются, но, возможно, следует учитывать этот мысленный эксперимент при разработке ваших классов: что, если каждый из классов вашего приложения должен разрабатываться и поддерживаться другим разработчиком в Интернете, и классы также должны взаимодействовать друг с другом через интернет. Согласится ли каждый разработчик с тем, что класс, который они пишут и поддерживают, соответствует принципу единой ответственности , и поэтому был бы рад, что они не поддерживают код, который должен быть кем-то еще?

Что касается дизайна интерфейсов классов, подумайте о написании всего кода, который использует ваши классы в первую очередь. Пока не беспокойтесь о том, что должно произойти с металлом. Вы должны быть в состоянии заглушить всю программу в терминах классовых отношений , прежде чем писать свою первую подробность реализации. Если вы не можете сделать это без разбрасывания битов или обнародования переменной, то пришло время вернуться к диаграмме отношений классов и посмотреть, не пропустили ли вы абстракцию. Другими словами, используйте ваш код, прежде чем напишите свой код. Сделайте это в первую очередь, и вы можете быть удивлены, насколько чисты ваш код и интерфейсы, если вы никогда не делали этого раньше.

Хотя шаблоны проектирования, безусловно, хороши для изучения, а некоторые являются чрезвычайно мощными, они, как правило, не являются объектно-ориентированными по своей природе, и, как утверждают некоторые (и я склонен согласиться), шаблоны проектирования часто являются просто выявленными слабостями. язык. Шаблоны проектирования одного языка - это основополагающие принципы другого. Поэтому, когда вы начинаете, не зацикливайтесь на том, является ли какое-то отношение хорошим кандидатом на мост или фасад; это не специфично для объектно-ориентированного мышления, это связано с тем, что позволяют конструкции конкретного языка.

1
задан Community 23 May 2017 в 12:01
поделиться

2 ответа

Похоже, что это действительно ошибка в бета-версии SL3, но кто-то нашел способ ее обойти:

http://tozon.info/blog/post/2009/06 /27/Countdown-to-Silverlight-3-2-Setting-styles.aspx

Это больше не будет проблемой с 12 июля, когда SL 3 выйдет в RTM.

2
ответ дан 3 September 2019 в 01:22
поделиться

Это странно ... Я не понимаю, почему он работал в первый раз и выходил из строя во второй. Попробуйте использовать промежуточную переменную вместо двойного доступа к ресурсам:

    Style style = (System.Windows.Style)this.Resources["PathStyle"];
    Path path = new Path();
    path.Style = style;
    Path path2 = new Path();
    path2.Style = style;
0
ответ дан 3 September 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: