What design patterns do you most frequently use in your work?
C#
The base class should not depend on subclasses — how can this be implemented? How can you make the base class aware of the existence of subclasses?
How do you understand the Open/Closed principle? What does it mean that a class is closed for modification but open for extension?
How does an abstract class differ from a regular class?
How do you use the Singleton pattern in plugin architecture? How to organize the relationship between plugins?
What tools in C# allow you to extend or modify method behavior without changing the source class?
How to organize running a single test method multiple times with different arguments without using attributes?
If we are talking about C#, is it possible to overload a method to extend behavior?
What is a stream? How do you understand it?
How to transfer work from runtime to the compilation stage? For example, how is it done in System.Text.Json?
What keywords in a method allow it to be overridden in C#?
Does async/await always work in a separate thread? Where do threads come from?
What is the Facade pattern? Briefly describe it.
How to create a custom attribute in C#?