Start with two guides:
Example 1:
I often communicate with some programmers. From their conversations, I can feel that they all use object-oriented tools and use object-oriented programming languages, but they often cannot make a software that truly conforms to object-oriented ideas.
Why? What can I do in the future to compile software that conforms to the object-oriented thinking?
Example 2:
During the summer vacation, our team conducted short brain English training. Simply speaking of this kind of English is to overturn almost all previous English learning models, A short brain English learning mode is established in the IT environment. In the first and second stages, the main task is to use it to establish a connection between sound images to achieve a short spelling and translation process.
Why are we doing this?
Example:
Process-oriented.
Process, process, I think there is a starting point and an ending point; from the starting point to the ending point, there is excessive cause and effect. The bad thing about this programming method is that every part of it is an inseparable chain.
As we all know, the only change in the world remains the same, so the demand will change. Once the demand changes, unexpected results will occur in programs written using the process-oriented design method.
For example, when I used to build a data center Charging System (written in VB6.0), I wrote code according to the process-oriented method, however, when I want to change a place, many places need to follow the change, and sometimes more than N bugs will be added.
Therefore, the second write of the data room charging system will no longer use the process-oriented method. The reason is not that the process-oriented method cannot be implemented (on the contrary, all programs can use the process-oriented method ), but sometimes it seems a little "clumsy" when dealing with changes in demand ".
Besides, it is object-oriented.
Objects and objects, I personally think, are the objects we come into contact with each other as independent objects. There is no causal relationship between them, only driven by an external force, only between objects can this embarrassing situation be broken. After learning UML, we know that this external force drive is the desire and hope of our participant actor (the so-called case drive is also ).
I personally think that the purpose of object-oriented programming is not to reuse, but to provide an object that provides us with a way to handle and respond to complex problems. We can improve the abstraction level through abstraction) to build a super complex system, and when the demand changes, we will not become so tangled and difficult.
In fact, the most difficult thing about object orientation is abstraction. abstraction should not be something that comes out of the camera, but must be described by one thing, which is UML.
Speaking of UML.
UML solves the problem of descriptive abstraction. How does it map the real world to the object world? It can describe the real world from the object world. Of course, it can also verify the correctness of the ing between the object world and the real world.
Here we can solve the problem of Introduction 1. Why can't we compile a real object-oriented software using object-oriented tools and languages? In fact, UML is useless.
Everyone knows that UML is a visual modeling language. Since it is a language, it will have the corresponding basic vocabulary and syntax. Therefore, UML defines some elements (I .e. words) that are required to establish a model and express a specific meaning. It also defines the rules (I .e. the syntax) for the relationship between these elements ). Some people think that with these words and syntax, they will use UML to build the software that comes forward to the object!
In fact, we all know that in the art of chess, a chess master is not a chess master who knows sixteen chess pieces and sweeps a line by passing the horse to the sky and shoot a gun. We also know that even if we use the same language, the same text, and the same syntax, the article written by each person is "day by day.
So we need to learn UML well. I think someone may ask how to learn it? The answer to this question is the same as that of Question 2.
B English training under it
Why do we need Sb training? The answer is a shift from process-oriented to object-oriented. In our previous English learning models, we used to memorize words and grammar (similar to some people's UML learning !), Take the exam later. Speaking English has never been our strength, right? It is not that the previous English method cannot learn English well, but that the effect of the previous English learning method is not proportional to the time and energy we have paid.
In the past, because the English learning model did not meet our needs, our team teacher asked us to perform Sb English learning in the IT environment. This method breaks the tradition, and now everyone in the team feels that this method is good. The revolution has not yet been completed, and the soldiers are working hard.
Therefore, when we learn UML, we cannot focus on words and syntaxes. We need to increase the use of tools to the ideological level, so that we can freely jump out of the limitations of using tools, we can really look at and solve practical problems from the perspective of methods and ideas.
Whether it's process-oriented, object-oriented, or case-based learning of UML or English, learning skills can certainly become a good person, and the enlightenment can be refined.
Thought is king.