The reusability of software has always been one of the goals pursued by software projects. The software engineering industry hopes to quickly build specific application systems using standardized software modules in the same day. In fact, this effort has also achieved considerable progress, but there is still a lot of gaps that are expected to expect, and the software module is far from disassembly, repair, replacement, convenient and simple as the tires on the car. In most cases, the software discussed by the software itself refers to the reusability of software itself, that is, the reusability of software code implementation. In fact, software's reusability is far more than that, the full life cycle of software development has a reusable value, including project organization, software requirements, design, document, implementation, test methods, and test cases can be repeated. Effective resources utilizing or drawing on. It can be said that a whole process of a successful software project is a treasure, and you will not use it. Of course, the reusability of software code is the most intuitive, and the most easily thought of, and it is also part of the programmer to pursue and have sense of accomplishment. But how can I develop reusable code? Maybe some of the programmers will say: This is easy, I have encapsulated a lot of categories with C , I have developed a lot of COM components with Visual Studio, isn't it reusable? Is the truth? For many software development projects I have learned and experienced, many classes and components are all flowers, and there will be no one in the project. Many programmers believe that the class or COM components developed by C should be reusable. This is the wrong idea. The development tool is just a tool that promotes code reusability rather than decisive factors. The key to deciding whether the code can be reused The problemation method of the problem facing the software system is to decompose a complex problem into a simple question or independent individual method and strategy. I have been confident that if a programmer uses C, it is not possible to use the modular structure to construct a software system. You cannot expect that he can write a high reusable class structure using C . Not the development tool determines the reusability of the software, but how to decompose a complex problem. Whether it is a hierarchical software idea (TCP / IP protocol stack), modular software ideas (C / FORTRAN), or reusable components software ideas (C / COM), it is not contradiction and exclusion, but Three aspects of a problem are different perspectives on the same problem domain. Also some programmers may say: The software we have developed is for specific user needs, requires different requirements, and there is no way to achieve the reusability of software. It seems that there seems to be reasonable. In fact, the reusability of software is also applicable. Of course, many of the general software modules that many programmers can develop, maybe some programmers will never develop this. Software, is it a reusability of software? It doesn't matter. Of course, it is not that the reusability is reflected in the various levels of software, and the software modules that are common, reusable are often provided by operating systems or development tools, such as universal libraries, standard components, standard template libraries, etc., do not need programs. Re-developed. So how do general programmers develop reusable software? Under normal circumstances, a software company or software team often focuses on solving problems in a certain field. It is not exactly the same for software items in this area, but there are many common situations, such as financial or ERP fields. Most of them need each. Various custom forms and charts. So when developing software, developing reusable software for a particular area or problem domain is a problem and direction that most programmers need to focus on. So during the actual development process, how the programmers improve the ability to develop reusable software, I have a few small suggestions may help everyone.