Object-oriented thinking process

Source: Internet
Author: User

Introduced

This article is the first part of a series of object-oriented thinking process choosing this topic as the title of a book or column is a major decision, and making this choice is not easy, because there are many good books and articles on object-oriented topics, including object-oriented analysis, object-oriented design, object-oriented programming, design patterns, object-oriented databases, Unified Modeling Language (UML), different object-oriented programming languages, and many other object-oriented themes.

But after reading these books, many people forget that these themes are based on one thing: how you think about object-oriented methods. Unfortunately, many software professionals spend a lot of time in these books, but don't try to really understand the ideas that are included in them.

I advocate learning object-oriented thinking not by learning a specific development method or a set of tools to do, the object-oriented approach is a simplified expression of the way of thinking, all the articles in this column are related to the object-oriented thinking process.

Separating development methods and tools from object-oriented thinking is not an easy task, and many people have introduced object-oriented thinking through a development approach or a development tool, and many C programmers have contacted the object-oriented idea by porting to C + +, and a Some software professionals are exposed to object-oriented thinking using UML to express object models.

It is important to understand the important difference between learning object-oriented ideas and using methods and tools that support paradigms, and in this article, Craig Larman describes what "UML is, not what".

Unfortunately, in the context of software engineering and UML graphics presentation language, learning to read and write UML tags seems to be similar to object-oriented analysis and object-oriented design, of course, this is not object-oriented, the latter is more important than the former, so I recommend learning object-oriented analysis and design techniques, It's much more important than a UML tag or using a use case tool.

Although learning a modeling language is a very important step, it is more important to learn the object-oriented technique first, to learn UML before the object-oriented thinking and to learn how to read an electrical diagram without a bit of electrical knowledge.

The same problem occurs in the choice of programming languages, as mentioned earlier, many C programmers are exposed to object-oriented thinking by porting C + +, which is usually just C programmers using C + + compilers.

Even object-oriented languages such as Java, C #. NET and visual Basic. NET has become very popular, but this problem still exists, and many Visual Basic programmers now have to jump to Visual Basic. NET, too, and many C + + programmers may be forced to perform object-oriented practices and be asked to move to Java or C #, They have no other choice than to think about object-oriented methods.

Early Visual Basic is not object-oriented, C + + is backward-compatible C, because of this, there is a large number of use of C + + compiler, but at the same time using only the C syntax, all of the C + + object-oriented features, and, worse, one that uses a sufficient number of facets The program to object characteristics makes the program difficult to understand, which is the abuse of object-oriented thinking. So when you're using object-oriented development, it's important to first learn the basics of object-oriented thinking, not to be influenced by programming languages such as c++,c# or Java or modeling languages like UML, and spend more time learning object-oriented thinking processes.

When I was in the late 1980, my first Smalltalk class, the teacher said that this class is a new object-oriented paradigm of thinking, and it goes on to say that even though most of us are very good programmers, there are certainly about 10% to 20% of us who will never be able to grasp the object-oriented way of thinking, If this is true, it is likely that some people have never spent time researching paradigms and learning object-oriented ideas.

Scope of this column

It should be very clear now, before you dive into the programming language and modeling language, to be a faithful believer in the object-oriented thinking process, which will include Java, C #, and VB. NET code example, there will also be UML diagrams, but when you really understand object-oriented ideas, you don't need to know Java, C #, or UML. I have said that first of all should learn to think, why so much code or UML diagram? First, they are good tools for describing object-oriented thinking, and second, they are very important for object-oriented processes, and the key is not to focus on code or UML, but to use them to understand the idea.

This column does not teach code syntax or UML, and I hope this column will give you an interest in other object-oriented topics such as object-oriented analysis, object-oriented design, and object-oriented programming.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.