Shipping costs for Design Patterns: Elements of Reusable Object-Oreinted Software