"Object-oriented" has always been an effective way to use when I resolve the complex problem, and more strictly is a methodology. I think this method must be combined with the development law of the real world. For example, from the long river of human history, the long river that has evolved in this society has evolved in all aspects of the various issues of human beings, and the various different institutions will follow again. Different responsibilities are divided into departmental division. This can result in a face-to-object programming or "service-oriented" programming. "Object-oriented" should be the concept of "abstract" to correctly understand the concept of "abstract". This word itself is difficult to explain, I should understand this, that is to say, whether we can summarize the characteristics present in this area, so I think "abstract" is equal to "summary". If the human society is metaphor, a country is a service, then China's highest abstraction should be the State Council, until the highest layer should be a United Nations, what is it? This is a problem that is very difficult to answer, maybe the highest level of abstraction should be "yin". In addition, this is the reason why I worship the ancients, they have abstract the world from "yin and yang". As a software architecture person, how should I design to face a complex system? Only some of my homes, a software system first frame design, this framework is to be determined according to the questions we solve. It is like a country to be divided into agency's level, with the highest and lowest functional organizations. With a layered design of the frame, which services should be arranged to correspond to which layer. The relationship between the service is then deployed for each layer. It seems that "N-layer system structure" should be the same as the complex social division of people in today's human society. To understand the object-oriented design, I feel that some history, military laws, construction books can be read, from these books, you should be able to discover something related to software design, the key is to understand its connotation, or Say it is its core idea, more or "abstract". In fact, the template in C is a higher level of abstraction in the concept of classes. The MFC design uses object-oriented ideas, and of course also include ATL, OWL, VCL. They all have good abstractions on the service, or is an abstraction of a certain organization structure, I understand it as the software's "ideological" (framework) level abstraction. Thought is the soul of human beings, abstract the idea should be the highest level. The appearance of object-oriented languages is to hope in "invisible world". "Taoism, a life of the second, two students, three thousand people", all things are composed of.