SynopsisDesign patterns provide ways to structure software components into systems that are flexible, extensible, and have a high degree of reusability. The state pattern, the null , object pattern, and the singleton pattern are used to implement common data structures such as lists and trees. These 'patterns help narrow the gap between me abstract views of the data structures and their concrete implementations. The smaller the gap, the higher the level of abstraction.' The more abstract, the'less complex the coding structure. As' a result, algorithms are easier-~ to understand and more manageable. This paper advocates teaching the above design patterns in data structures courses. -.--1._