180 likes | 359 Views
Design Patterns In OPM. Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger. Research purpose. Model known design patterns in OPM Construct a meta-model for design patterns Demonstrate design in OPM using a test-case Develop best practices for design in OPM
E N D
Design Patterns In OPM Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger
Research purpose • Model known design patterns in OPM • Construct a meta-model for design patterns • Demonstrate design in OPM using a test-case • Develop best practices for design in OPM • Hopefully, Develop new design patterns for OPM.
Topics of this presentation • In this presentation we will review three well known Design patterns from “Design patterns: Elements of Reusable Object-Oriented Software”. And how they are modeled in OPM. • We will see that these three design patterns are naturally “built into” OPM and their positive consequences are relevant for most OPM models.
The Command Design Pattern • “Intent: Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.”[1] Menu item application interface paste document
Command in OPM • Commands are actually processes • Processes can be generalized
The Command Design Pattern • “Consequences: • Decouples the object that invokes the operation from the one that knows how to perform it. • Commands are first class objects they can be manipulated and extended like any other object. • You can assemble commands into a composite command. (Macro command) • Its easy to add new commands, because you don’t have to change existing classes.” [1].
The Template Method Pattern • “Intent: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.” [1]
Template method in OPM • Methods are processes • Processes can be aggregated and generalized.
The Template Method Pattern • “consequences: template methods are a fundamental technique for code reuse… they are the means for factoring out common behavior … hook operations…” [1].
The Visitor Design Pattern • “Intent: Represent an operation to be preformed on the element of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates.”[1]. node Node visitor VariableRef Node Type checking visitor
Visitor in OPM • Operations are processes • Different operations are all specialization of a common generalized operation that is actually the operation interface. • The element object is an instrument of this generalized process.
The Visitor Design Pattern • “Consequences: • Visitor makes adding new operations easy… • A visitor gathers related operations and separates unrelated ones… • Adding new concrete element classes is hard… • Breaking encapsulation…” [1]
Conclusions • OPM advantages: • Decoupling • Less sub-classing • Breaking encapsulation • OPM disadvantages: • Breaking encapsulation
Some more research goals • Studying design pattern structure using OPM models. • Studying the relationship between design patterns using OPM models. • Developing best practices and design patterns for solving design problems in OPM.
References • Gamma, Helm, Johnson, Vlissides, “Design Patterns: Elements of Reusable Object-Oriented Software”, Addison-Wesley 1994. • Dori, “Object-Process Methodology: a Holistic Systems Paradigm”, Springer 2002.