Design patterns for android