While composing my question I actually find out there are several questions of them. They are all about architecture design and follow the same line. However one is about declaring interfaces, another about inheritance and a third about class inheritance. So it can be generalized tremendously.
Is it okay to post three/five questions in a minute or five?