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.
Similar content being viewed by others
References
Alexandrescu A (2001) Modern C++ design, generic programming and design patterns applied. Addison-Wesley, Reading
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
Arnout K, Meyer B (2003) Uncoverring hidden contracts: the .NET example. IEEE Comput 36(11):48–55
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
Arnout K (2004) From patterns to components, PhD thesis, ETH Zurich. Available (2006) at http://se.ethz.ch/ people/arnout/patterns/
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
Binder RV (1999) Testing object-oriented systems, models, patterns and tools. Addison-Wesley, Reading
Bosch J (1998) Design patterns as language constructs. J Object Oriented Programm 11(2): 18–32
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
Bushmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture: A system of patterns, Vol 1. Wiley, New York
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
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
Eclipse (2006) Aspectj project. Available (March 2006) at http://www.eclipse.org/aspectj
ECMA International (2005) ECMA Standard 367: Eiffel: analysis, design and programming language, approved 21 June 2005. (Expected to become ISO standard in 2006)
ETH Zurich (2006) Chair of Software Engineering: AutoTest project pages and articles, available (March 2006) from http://se.ethz.ch/people/leitner/auto_test/
ETH Zurich (2006) Chair of software engineering: pattern library and pattern wizard; available (March 2006) from the download page. http://se.ethz.ch/download
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design Patterns. Addison-Wesley, Reading
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
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
Jézéquel J-M, Train M, Mingins C (1999) Design patterns and contracts. Addison-Wesley, Reading
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
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
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
Meyer B (1988) Object-oriented software construction. Prentice Hall, Eaglewood cliffs
Meyer B (1991) Design by contract. In: Mandrioli D, Meyer B (eds) Advances in object-oriented software engineering, Prentice Hall, pp 1–50
Meyer B (1991) Eiffel: the language. Prentice Hall, Eaglewood cliffs (second printing, 1992)
Meyer B (1997) Object-oriented software construction, 2nd edn. Prentice Hall, Eaglewood cliffs
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
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
Meyer B (2006) Eiffel sthe language, 3rd edn. Draft available at http://se.ethz.ch/~meyer/ongoing/etl/ (in preparation)
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
Waldén K, Nerson J-M (1995) Seamless object-oriented software architecture. Prentice Hall, Englewood cliffs
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-006-0001-0