This paper describes how to improve the reusability of iconic program modules. In iconic programming systems, the most important features for reuse are the customization of a module and combination of multiple modules without changing their definitions. In order to realize these features, we propose an object sharing technique, which allows components of multiple modules to represent the same object instance. Since a component in a module can be related to an object in another module, by adding a new function to an object in the latter module, the former module can be customized without changing its own definition. In addition, by relating a component to multiple objects in different modules, different functions defined in each module, can be combined easily. Finally, we show that the proposed technique realizes a useful software development style using templates, which will contribute to the improvement of the productivity.