Generally, in order to build a good software system, it should start from the beginning of clean code. For example, if a brick building quality is not good, then the architecture is in perfect vain.
Similarly architecture. That is the problem SOLID design principles to solve, very broad application, but also the deep watery, know not why.
SOLID What is it?
S-> SRP: The Single Responsibility Principle
O-> OCP: Principles shutter
L-> LSP: Richter Substitution Principle
D-> DIP: Dependency Inversion Principle
What specific role do?
SOLID main role is to tell us if the principle of "data" and "functions" organized into categories, and how to link them together into class program .
Under normal circumstances our main goal is to build middle-level structure:
1. The change is software that can be tolerated
2. The software is easy to understand
3. Construction of a plurality of components can be multiplexed in the software system
These are our development, we should carefully consider the main point of the design, to make these efforts are not really hard to do.
SOLID above principle is should fit snugly on top of our code logic to help us define the software architecture of modules and components.
Having said that it first! What next in principle to share the specifics SOLID Yes.