Soon I plan to learn patterns. But before that I would like to know specifically whether it is possible to be a good (and sought-after) programmer without knowing them. More interested in templates for C #, WPF. Share, please, whether they help and by how much?

  • one
    Design patterns? ( design pattern ) - Maxim Kamalov
  • Maybe @ semenvx27 meant Generic Classes ? Because design patterns are not language specific. - Ilya Pirogov
  • A lot of templates, but just what to learn in C #? Did I even get to them? - semenvx27
  • one
    If you have such questions, then no - Specter

3 answers 3

  • Design patterns exist not only in C #, as you think. They can be implemented in all object programming languages, that is, in those that support the most common OOP units — class, encapsulation, inheritance, and polymorphism. Some templates do not necessarily use all 4 pieces.

  • You could already use these or other templates without even knowing it. Those. You could use elements or whole patterns in the implementation of classes or the "bunch" (group) of classes. Therefore, the question is rather whether you understand the PLO. Templates were also not invented by people from scratch, all of them (almost all) were taken from well-built programs, from the implementation of the object part.

  • And finally, you should not learn all the design patterns, you only need to know the most basic ones: Singleton, Team, Strategy , Adapter

  • Thanks for information - semenvx27
  • 3
    IMHO, publisher-subscriber, observer, iterator much more common patterns than the adapter or the team - Specter
  • All patterns are useful, @Spectre. It seemed to me that the patterns I mentioned are the most used, you think differently ... and rightly so! After all, this opinion may depend on the specific area in which a person works, IMHO. - Free_man
  • @Spectre, if it's not a secret, what is the difference between the first 2 patterns given by you?) - rasmisha
  • one
    - observer: the so-called subject registers ( registerObserver() ) in itself some object - observer - actually receiving a link to this object (although there may be several), and somewhere in its methods some method of this object calls, let's say update() . the observer object, when calling the update() method, executes the corresponding update logic - Specter

All wrong in different ways. And the right decision is usually one. When a lot of people, having filled a bunch of cones, came apart to one solution, it became a template. So as not to stuff your bumps and save time, you need to know the solutions to common problems.

  • This is not always the case ... - Free_man

Templates do not exist only in C #. However, in Sharpe, many of them are implemented at the language level. I can advise the book Principles, Patterns and Agile Development Techniques in the C # Language (the author is authoritative for me, but I did not read this particular book).

  • Well, on the weekend I read. No one sees any doubt that they are needed. So they are really needed - semenvx27
  • Another interesting book on patterns [Object-oriented design techniques. Design patterns] [1] [1]: - Freezze
  • But what about svezhak Freeman and Freeman. Design Patterns - Specter
  • @Spectre pro svezhak funny joke (although if you look at the book GoF, then yes). And just about the book you advised, it takes into account the peculiarities of the language. (I also have books from comments and both are excellent) - rasmisha
  • one
    @Iranda why did you not like "Uncle Bob"? Read at least his book "Clean Code" and understand why I called that. - rasmisha