Language features meet design patterns: raising the abstraction bar

  • Authors:
  • Judith Bishop

  • Affiliations:
  • University of Pretoria, Pretoria, South Africa

  • Venue:
  • Proceedings of the 2nd international workshop on The role of abstraction in software engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

In the context of software engineering, abstraction is the means by which we move from layer to layer in the realization of the solution to a large problem. It has been recognized for over a decade that design patterns are one of the key mechanisms for implementing reliable and maintainable software. This paper explores where they fit in in the software "food chain". In particular, it examines how advances in language design can narrow the gap for implementing design patterns. Examples are given of syntax features in C# 3.0 (extension methods and LINQ) as well as of library methods (Serialize) in terms of which pattern implementations become easier to produce and reproduce. The challenges that face design pattern implementation are discussed and the promise of reusable design patterns examined.