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.