Many people learn object-oriented and design patterns, often for technology and technology. They just learned the form and are very rigid. This is because you are not sure what the purpose of the technology is. For the design, he aims to facilitate software development and maintenance.
We do not advocate abuse of design because the design matches your current software development needs. For your project requirements, it may be tiled, And the intuitive method is the most efficient. Because you are the only one doing this, you do not have to assign function tasks to several developers by designing. Without such requirements, there is no need for this design. Because your project is very small and a highly abstract architecture is designed, there is only one simple implementation, and the flexibility of the Framework is useless, the result design cost is much higher than the development cost, so it is unnecessary. Unless you are teaching a plan, it is necessary to pay attention to every detail so as to meet high design requirements. Daily development requires consideration of costs, and design itself is one of the costs.
Besides, design is risky. You cannot guarantee that your design is perfect. The more complicated the design, the higher the requirement for your design capability, can you control it with confidence?
Therefore, I advocate that you always focus on the purpose of the design. You need to pay attention to whether the current design can effectively improve your development efficiency and improve your software maintenance efficiency in the future, it should also be based on the reality of the project, rather than the theory. Theoretically, any design with equal coupling is the same, but in fact, the requirements of specific projects often change in a few places, you only need to maintain it later.
If you cannot determine whether the design is good for you, why do you have to constantly demand a perfect design? Isn't it a way of designing for design and getting mad ?!