The basic principle of code flexibility is to remove as many specifics as possible, that is, to make code usable in more possible scenarios. One of the key techniques of flexibility, abstraction, too tries to postpone the specificity as late as possible. Best practices like OO Design Principles guide you to loosely couple to the specification. [Continue]

