Contract composition
Solidity supports contract composition. Composition refers to combining multiple contracts or data types together to create complex data structures and contracts. We have already seen numerous examples of contract composition before. Refer to the code snippet for creating contracts using the new keyword shown earlier in this chapter. In this example, the client contract is composed of the HelloWorld contract. Here, HelloWorld is an independent contract and client is a dependent contract. client is a dependent contract because it is dependent on the HelloWorld contract for its completeness. It is a good practice to break down problems into multi-contract solutions and compose them together using contract composition.