contract-design – Can There Be Only One Instance of a Contract?

contract-design

Say we have:

contract TestFooContract{
//bunch of stuff and state
}

Does this mean that there is only 1 "TestFooContract"?
Or can I instantiate 10 of them? What if I want multiple of these contracts?
In OOP terms, is a contract thought of as a class? Or perhaps just a singleton object?

Best Answer

Addresses are generated independently from the code inside them. So yes, you can generate ten different addresses all with the same code.