commitment, the outcome is not perfect.
Local modifications made to the code, the impact may be more than a local level.
The change will be removed and part of the package together, so that the other parts will not be affected. After the code changes, unexpected parts become scarce, the system becomes more flexible.
Could not stand feeling, examples can be understood, but a bit difficult to understand the implementation of the code,
Go learn some basic, then come back to learn design patterns.