Design Principle vs Design Pattern