PT
Os padrões de desenho são dificeis de encontrar num projecto, devido a falta
apoio da linguagem de programação onde foram instanciados. Desenvolvemos um
conjunto de primitivas de alto nivel que suportam a implementação dos padrões de
desenho, auxiliando a representação dos seus elementos na linguagem Java. Estas
primitivas abordam os padrões de desenho mais utilizados em linguagens orientadas
a objectos, nomeadamente o Singleton, o Decorator, o Flyweight, o Visitor,
o Composite e o Observer. Durante o percurso desta dissertação, iremos demonstrar
que é possivel auxiliar a implementação de padrões de desenho através de
geração de código, sem limitar os contextos onde pode ser integrado. As extensões
propostas são avaliadas pela substituição de instancias de padrões de desenhos
presentes nem classes do Java SDK e da plataforma JHotDraw.
EN
Design patterns instances may require a lot of effort to be located and managed
when they are in the form of source code, due to the lack of support provided
by the programming languages. In this dissertation we provide a set of high-level
primitives that address the main features of certain design pattern, supporting
their implementation, and offering a way to be represented in Java through code
annotations. We developed proof of concept extensions that address some of the
widely used design patterns in object oriented programming, namely Singleton,
Decorator, Flyweight, Visitor, Composite and Observer patterns. Through the
course of this dissertation, we demonstrate that is possible to support design pattern
implementation through code generation without sacrificing much flexibility.
The proposed Java extensions are evaluated by refactoring existing classes from
the Java SDK and the case study framework JHotDraw