Skip to main content
Log in

Pattern Componentization: The Factory Example

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

Can Design Patterns be turned into reusable components? To help answer this question, we have performed a systematic study of the standard design patterns. One of the most interesting is Abstract Factory, for which we were indeed able to build a reusable component fulfilling the same needs as the original pattern. This article presents the component’s design and its lessons for the general issue of pattern componentization.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Alexandrescu A (2001) Modern C++ design, generic programming and design patterns applied. Addison-Wesley, Reading

    Google Scholar 

  2. Arnout K, Meyer B (2003) Finding Implicit Contracts in .NET Components. In: de Boer F, Bonsangue M, Graf S, de Roever WP (eds) Proceedings of FMCO 2002 (Ist international symposium on formal methods for components and objects, Leiden, The Netherlands, November 2002), LNCS vol 2852. Springer, Berlin Heidelberg New York, pp 285–318

    Google Scholar 

  3. Arnout K, Meyer B (2003) Uncoverring hidden contracts: the .NET example. IEEE Comput 36(11):48–55

    Google Scholar 

  4. Arnout K, Bezault E (2004) How to get a Singleton in Eiffel? In: Proceedings of TOOLS USA 2003 (44th international conference on the technology of object-oriented languages and systems), Santa Barbara, CA, September 2003, in J Object Technol 3(4), 75–95. Available (March 2006) at http://www.jot.fm/issues/issue_2004_04/article5

  5. Arnout K (2004) From patterns to components, PhD thesis, ETH Zurich. Available (2006) at http://se.ethz.ch/ people/arnout/patterns/

  6. Arslan V, Nienaltowski P, Arnout K (2003) An object- oriented library for event-driven design. In: Böszörmenyi L, Schojer P (eds) Proceedings of JMLC (joint modular languages conference), Klagenfurt, Austria, August 2003. LNCS 2789. Springer, Berlin Heidelberg New York, pp 174–183

  7. Binder RV (1999) Testing object-oriented systems, models, patterns and tools. Addison-Wesley, Reading

    Google Scholar 

  8. Bosch J (1998) Design patterns as language constructs. J Object Oriented Programm 11(2): 18–32

    Google Scholar 

  9. Budinski F, Finnie M, Yu P, Vlissides J (1996) Automatic code generation from design patterns. IBM Syst J 35(2):151–171 Available (March 2006) at http://www.research.ibm.com/designpatterns/pubs/codegen.pdf

    Article  Google Scholar 

  10. Bushmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture: A system of patterns, Vol 1. Wiley, New York

    Google Scholar 

  11. Chambers C, Harrison B, Vlissides J (2000) A debate on language and tool support for design patterns. In Proceedings of POPL 2000 (27th ACM SIGPLAN-SIGACT symposium on principles of programming languages), Boston, ACM Press, pp 277–289

  12. Dubois P, Howard M, Meyer B, Schweitzer M, Stapf E (1999) From calls to agents. JOOP (J Object Oriented Programm) 12(6): 1999 Available (March 2006) at http://www.inf.ethz.ch/~meyer/publications/joop/agent.pdf

    Google Scholar 

  13. Eclipse (2006) Aspectj project. Available (March 2006) at http://www.eclipse.org/aspectj

  14. ECMA International (2005) ECMA Standard 367: Eiffel: analysis, design and programming language, approved 21 June 2005. (Expected to become ISO standard in 2006)

  15. ETH Zurich (2006) Chair of Software Engineering: AutoTest project pages and articles, available (March 2006) from http://se.ethz.ch/people/leitner/auto_test/

  16. ETH Zurich (2006) Chair of software engineering: pattern library and pattern wizard; available (March 2006) from the download page. http://se.ethz.ch/download

  17. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design Patterns. Addison-Wesley, Reading

    Google Scholar 

  18. Hachani O, Bardou D (2003) On Aspect-oriented technology and object-oriented design patterns. In: Proceedings of the workshop on Analysis of Aspect-Oriented Software, held in conjunction with ECOOP 2003 (17th European conference for object-oriented programming), Darmstadt, Germany. Available (March 2006) at www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/hachani_bardou.pdf

  19. Hannemann J, Kiczales G (2002) Design pattern implementation in Java and AspectJ. In: OOPSLA 2002 (17th ACM conference on object-oriented programming, systems, languages and applications, Seattle 4–8 November 2002, ACM Press, pp 161–173

  20. Jézéquel J-M, Train M, Mingins C (1999) Design patterns and contracts. Addison-Wesley, Reading

    Google Scholar 

  21. Kennedy A, Syme D (2001) Design and implementation of generics for the .NET common language runtime. In: Proceedings of PLDI 2001 (ACM conference on programming language design and implementation), Snowbird, UT. Available (March 2006) at research.microsoft.com/projects/ clrgen/generics.pdf

  22. Kiczales G, Lamping J, Mendhekar A, Maeda C, Videira Lopes C, Loingtier J-M, Irwin J (1997) Aspect-oriented programming. ECOOP 1997 (European conference for object-oriented programming), Jyväskylä, Finland, 9–13 June 1997. In: Aksit M, Matsuoka S (eds) LNCS 1241. Springer, Berlin Heidelberg New York, pp 220–242. Available (March 2006, registration required) at http://www.link.springer.de/link/ service/series/0558/papers/1241/12410220.pdf

  23. Meyer B (1986) Applying ‘Design by Contract’. Technical Report TR-EI-12/CO, Interactive Software Engineering Inc; also in IEEE Comput 25(10):40–51

  24. Meyer B (1988) Object-oriented software construction. Prentice Hall, Eaglewood cliffs

    Google Scholar 

  25. Meyer B (1991) Design by contract. In: Mandrioli D, Meyer B (eds) Advances in object-oriented software engineering, Prentice Hall, pp 1–50

  26. Meyer B (1991) Eiffel: the language. Prentice Hall, Eaglewood cliffs (second printing, 1992)

    Google Scholar 

  27. Meyer B (1997) Object-oriented software construction, 2nd edn. Prentice Hall, Eaglewood cliffs

    MATH  Google Scholar 

  28. Meyer B (2004) The power of abstraction, reuse and simplicity: an object-oriented library for event-driven design. In: Owe O, Krogdahl S, Lyche T (eds) From object-orientation to formal methods: essays in memory of Ole-Johan Dahl. Lecture notes in computer science, vol 2635. Springer Berlin Heidelberg New York, pp 236–271. Available (March 2006) at http://se.ethz.ch/~meyer/publications/lncs/events.pdf

  29. Meyer B, Arnout K (2006) Componentization: The example, to appear in Computer (IEEE). Draft available (March 2006) at http://se.ethz.ch/~meyer/publications/ patterns/visitor.pdf

  30. Meyer B (2006) Eiffel sthe language, 3rd edn. Draft available at http://se.ethz.ch/~meyer/ongoing/etl/ (in preparation)

  31. Pinto M, Amor M, Fuentes L, Troya JM (2001) Run-time coordination of components: design patterns vs. component & aspect based platforms. In: ASoC workshop (Separation of Concerns), 18–22 June 2001, Budapest. Available (March 2006) at http://www.lcc.uma.es/~lff/papers/ pinto-asoc-eccop01.pdf

  32. Waldén K, Nerson J-M (1995) Seamless object-oriented software architecture. Prentice Hall, Englewood cliffs

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bertrand Meyer.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Arnout, K., Meyer, B. Pattern Componentization: The Factory Example. Innovations Syst Softw Eng 2, 65–79 (2006). https://doi.org/10.1007/s11334-006-0001-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-006-0001-0

Keywords

Navigation