The basic characteristics of Java Basic Learning Summary, the beginning of learning, is a metaphysical understanding, with more than 3 years, and then look back, it is quite logical to understand
Language learning is probably such a law, learning, not very solution, application, application, gradually rooted in, looking back, suddenly a realization
Recently summed up the six principles of design patterns, feeling quite connected, first listed 6 principles:
Dimitri rule, Richter replacement principle, dependency inversion, interface isolation, synthesis polymerization, open and close principle
The first one, the abstract
Abstractions are not unique to the Java language. Bottom line: Ignore irrelevant details, abstract the behavior and attributes of things , and reflect the fields and methods in the class
The second one, package
hides internal details and provides only interfaces for communicating with the outside world .
This characteristic has some connection with the Dimitri law, Dimitri law requires that the action of the entities should be as few as possible, so that each class is independent of each other and amplified, each department
The system can be independent of each other, do their own things, colleagues compatible to provide services, the author felt that the word encapsulation is used to describe small services, micro-services are also quite suitable
Third, inheritance
A class derives from subclasses, called Inheritance , and derived classes inherit methods and instance variables of the base class, and can overwrite or add new methods
This creates the concept of the subclass parent class. Combining the first feature abstraction, we can see that the principle of dependency inversion is so that abstraction cannot depend on
Specifically, it makes the concrete dependent on abstraction.
If the concept of inheritance is broad, then the implementation of the interface will also produce subclasses and parents, the open and close principle requires internal expansion of the extension, the modification is closed, and inheritance has
A big connection.
Richter replacement principle a simpler understanding is that where subclasses can appear, the parent must also be able to appear and replace, in the programming in fact many places are embodied, most often
See map<xxx,xxx> Map = new hashmap<> (); list<> list = new arraylist<> (); is not to say that must write this, the author starts to use when actually
I don't quite understand why I wrote it until I saw the author's description in the book.
Synthesis and aggregation principles, in fact, better words are combinatorial and aggregation, and now many concepts of the boundaries are actually not so standard or strict, we will inherit and hold,
is generally held limited, holding is holding an instance
In short, a succession of the birth of countless situations, developers get a lot of experience in the practice and principles, this can only be in the design and coding slowly realized
Fourth, polymorphic
The methods of the parent class behave differently in subclasses. There are many states, there is inheritance, there are overrides, there is a parent class reference to the Child class object
Polymorphic examples are too many, do not do web development too much. However, the use of polymorphic derivative design patterns is the essence of the entire 23 design patterns
Everywhere is manifested, the multi-state light, everywhere, our Richter scale substitution principle is the direct embodiment.
The basic features of Java object-oriented actually have nothing to say, it is difficult to derive from a variety of applications, such as inheritance of the class load order, design patterns, and
Our database table design (abstraction and encapsulation capabilities), these later chapters are reserved for summary.
Java object-oriented features-a nutshell