| E. Gamma, R. Helm, R. Johnson, J. Vlissides: "Design Patterns. Elements of Reusable Software", Addison Wesley 1994. |
....for automatic reformulation of planning problems, based on automatic recognition of fingerprints within action based models. A more recent direction of work is exploring the use of generic types as planning domain design patterns, analogous to the software engineering notion of design pattern [19]. Defining a design pattern in his seminal work, Alexander, credited with invention of design patterns, states [1] that: Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem in such a way that you can ....
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of reusable software. Addison-Wesley, 1995.
....servers in the machines that can run them and transfer the data to the computer that is running the actual application (like VRPN) 6.3 Input Device Collection The input devices are managed by a central input device collection object. This is a singleton object that is globally accessible[15]. The device drivers are plug ins that are loaded into the application as the input device layer is initialized. The user can configure the devices via a text file. Thus there is no need to recompile the application to get access to new devices or to change the devices. When an application needs ....
....and users can introduce new event types when needed. 7.3 Processor Creation The processor objects are recursively created as needed. For example the application might request for an object that detects hand claps. In this case the application passes a request object to the processor collection[15](page 233) This request object first checks if the requested object type (with matching parameters etc. already exists. If the object does not exist then the request object tries to create one. This may lead to new requests since the gesture detector would need to know the acceleration of the ....
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: elements of reusable software. Addison Wesley Longman Inc. (1994)
....generic constraint based graph layout algorithm to layout the graph in a semantically meaningful way for the application domain. In the case of dynamic task nets, constraints are introduced to attach input parameter nodes to the left and output For details on the adapter design pattern see [8]. The class View together with the abstract class Unparser and the speci c unparser classes forms a strategy design pattern [8] 11 parameter nodes to the right hand side. Additionally, tasks are layed out from left to right according to their control ow relationships and parent tasks are ....
.... In the case of dynamic task nets, constraints are introduced to attach input parameter nodes to the left and output For details on the adapter design pattern see [8] The class View together with the abstract class Unparser and the speci c unparser classes forms a strategy design pattern [8]. 11 parameter nodes to the right hand side. Additionally, tasks are layed out from left to right according to their control ow relationships and parent tasks are placed above their children. 4.2 Con guring the Framework The implemented framework extension, which provides a proper GUI to the ....
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Professional Computing Series. Addison-Wesley, Reading, Massachusetts, 1995.
....necessary, and fills the view s representation document. The necessity of an update is signaled by the filter with which the view has registered itself through the Event Manager interface to receive the set of change events. A view and its respective filter are designed along the observer pattern [12]. Third party GUI components plugged into the framework usually ship with their own representation document (e.g. in Swing it is called model) Thus, the relations between a view, its representation document and its unparser are very tight. We use the adapter design pattern to implant new ....
....have to be implemented (hatched boxes) either once or for each application. The classes Tree View and Graph View need only be implemented once to provide for tree and graph views, respectively. However, they do not implement the required functionality on their own. Rather, they serve as adapters [12] communicating with third party components. The adapter pattern is also used for the classes Tree ReprDoc and Graph ReprDoc. Trees and graphs are realized with the help of Java Swing and ILOG JViews, respectively. A few classes have to be implemented for each application. For example, in the case ....
[Article contains additional citation context not shown here]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Addison-Wesley, Reading, Massachusetts, 1995.
....is given in [17] A mediator is a software module that exploits encoded knowledge about . data to create information for a higher layer of application. In the context of our architecture this task is done by the wrappers. Hence we apply the mediator more in the sense of Gamma et al. [4]: the mediator encapsulates how the client and the wrappers interact, i.e. the communication between client and wrappers takes place indirectly via the mediator. For this purpose every wrapper has to announce itself to the mediator. The mediator then associates the location of the wrapper resp. ....
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Professional Computing Series. Addison-Wesley, Reading, Massachusetts, 1995.
....necessary, and fills the view s representation document. The necessity of an update is signaled by the filter with which the view has registered itself through the Event Manager interface to receive the set of change events. A view and its respective filter are designed along the observer pattern [9]. Third party GUI components plugged into the framework usually ship with their own representation document (e.g. in Swing it is called model) Thus, the relations between a view, its representation document and its unparser are very tight. We use the adapter design pattern to implant new ....
....classes can be found in Figure 5. Our experience showed that introducing a third class serving as a model for the view, called Graph ReprDoc in this case, contributes to the extensibility of the entire view. These three classes make up a variant of the Model View Controller pattern presented in [9]. The class Graph View utilizes JViews Manager View to display the contents of our graph model which provides a convenient interface for our unparsers above the JViews graph model provided by JViews Grapher. Special graphic representation elements for nodes and edges have been implemented using ....
Gamma, E., R. Helm, R. Johnson and J. Vlissides, "Design Patterns: Elements of Reusable Software," Addison-Wesley, Reading, Massachusetts, 1995.
....The arbitrator and the component communicate through a special Adaptable interface. An adaptation to a component is specified at an architectural level and is translated into lower level adaptations. This approach is more general than the standard means of interposing proxies or wrappers [7] between components to intercept method requests. The activeinterface mechanism, as described, is limited to adapting the behavior of a component at the standard interface boundaries. In general, a component designer can reveal key policy decisions of the componenttobe adapted. In this ....
.... Bosch separates wrapping, whereby the behavior of C is adapted, from aggregation where new functionality is composed from existing components [6] Holzle argues that wrapping leads to poor performance as well as an excessive amount of adaptation code [30] The Adapter and Decorator patterns from [7] are useful ways in which to coordinate the controlled extension of classes, but it is typically very hard to impose a design pattern onto an existing class hierarchy. The Wrapping technique typically has no supporting adaptation mechanism. 3 DESCRIPTION OF THE EXPERIMENT Experiment objectives ....
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Addison-Wesley, Reading, MA, 1995.
....how this could be done. Also, there are consequences to different implementations. We will look into three implementation strategies you can apply to specifications. A Hard Coded Specification implements the specification as a code fragment, essentially treating the specification as a Strategy [Gang of Four] This allows a great deal of flexibility, but requires programming for every new specification. A Parameterized Specification allows new specifications to be built without programming, indeed at run time, but you are limited as to what kind of specifications you can build by what the programmers ....
....kind of specifications you can build by what the programmers have set up. Although programmers can be generous in providing parameters to customize, eventually they can make the parameterized specification too complex to use and difficult to maintain. A Composite Specification uses an interpreter [Gang of Four] to cut a very agreeable middle path. The programmers provide basic elements of the specification and ways to combine them, later users can then assemble specifications with a great deal flexibility. Once you have used specification, a powerful pattern that builds on it is Subsumption. The usual ....
[Article contains additional citation context not shown here]
Gamma E, Helm R, Johnson R, and Vlissides J, Design Patterns: Elements of Reusable Software, Addison-Wesley, 1995
....only RTD input class that can be directly accessed from other, possibly distributed COM component. These are likely to be implementations of data feed components that act as adapters and convert proprietary data formats into a form supported by RTD. The Application class within RTD is a singleton [4], which means that there will only one instance of that class. In order to feed data into the RTD system, the data feed components will need to gain access to a Feed object, from the Application object. Data can be entered into the system by invoking FeedData( and FeedDataIntoGroups( from a Feed ....
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Addison Wesley, 1995.
....new properties of to a model, thus enhancing it. These two techniques are the exact opposite and therefore, deduction rules applied in the opposite direction lead to refinement rules. Design pattern verification: a further use for the analysis rules might be in the verification of design patterns [10]. A design pattern is just an example of a transformation on a static or dynamic model, which is refinement preserving. However, at present, most design patterns are not proven correct, and are therefore open to misuse and incorrect definition. Analysis rules, in combination with a sound semantic ....
E.Gamma, R.Helm, R.Johnson, and J.Vlissides. Design Patterns: Elements of Reusable Software. AddisonWesley, 1995.
....of if statements and goto statements to simulate a while loop. A more modern example could be to simulate side effect free functions by using procedures and, by convention, to not use constructs generating externally visible side effects inside those procedures. Design patterns. Gamma et al. [GHJV95] have identified and systematically described a number of design patterns commonly used in object oriented programming, such as iterators, object factories, composite objects, etc. While some of these patterns may be candidates for being embodied as specific language constructs, others may be ....
E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns - Elements of Reusable Software, Addison-Wesley, 1995.
....contract syntax with an existing LALR grammar for Java expressions, and feeding the result to the compiler tools JLex [B96] and JavaCUP [Hu96] to create a parser and syntax tree builder for the contract language. Because the tree is available for inspection, and supports the Visitor design pattern [GOF95], it is relatively easy to extend the functionality of the contract compiler to support additional features of contracts. The resulting intermediate file provides a more fine grained language for expressing an explicit description of the changes to be made to the class file at load time. The ....
....Software Technologies, sells a commercial product that also defines an extension of the Java comment syntax, and uses the extended comments to instrument class files with assertions. Karaorman s jContractor [KHB98] uses the reflective capabilities of Java and the Factory Method design pattern [GOF95] to support the addition of contracts. When objects are instantiated through a special factory class, the factory adds to the new instance the instrumentation code. This approach uses only existing, standard Java constructs and calls. It also provides for retrying a method that throws an ....
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns---Elements of Reusable Software. Addison-Wesley, 1995.
.... tbR adapts TableBean code codeR.jar; property int topRow; action Glue5.retValue (int) String getTableValue (int col, int row) before Glue5.retValue (row) Figure 7: tbC and tbR adaptations single best algorithm or implementation (see Template Method pattern for similar justification [8]) The component designer could produce multiple components, each one optimized for a different context, but this defeats the purpose of reuse. Alternatively one could pre package a set of implementations (such as OIA D [15] but this continues to limit the possible solutions. The arbitrator ....
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Software. Addison-Wesley, Reading, MA, 1995.
....interface. The arbitrator and the component communicate through a special Adaptable port. An adaptation to a component is specified at an architectural level and is translated into lower level adaptations. This approach is more general than the standard means of interposing proxies or wrappers [8] between components to intercept method requests. The active interface mechanism, as described, is limited to adapting the behavior of a component at the standard interface boundaries. In general, a component designer can create special ports that allow policy decisions of the component to be ....
.... Bosch separates wrapping, whereby the behavior of C is adapted, from aggregation where new functionality is composed from existing components [7] Holzle argues that wrapping leads to poor performance as well as an excessive amount of adaptation code [31] The Adapter and Decorator patterns from [8] are useful ways in which to coordinate the controlled extension of classes, but it is typically very hard to impose a design pattern onto an existing class hierarchy. The Wrapping technique typically has no supporting adaptation mechanism. 2.3 Comparison Matrix As seen in Figure 2 there is ....
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Software. Addison-Wesley, Reading, MA, 1995.
....called a contract. Contracts are not necessarily part of the implementation code of a class, however, a runtime monitor could check whether contracts are being honored. In this paper we introduce jContractor, a pure Java library based system which supports contracts in Java using a design pattern [GHJV95] approach. jContractor supports Design By Contract without requiring any special tools such as modified compilers, runtime systems, modified JVMs, or pre processors, and works with any pure Java implementation. Therefore, a programmer can take advantage of the Design By Contract approach by using ....
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns -- Elements of Reusable Software, Addison-Wesley, 1995.
....this paper is to better understand the impact that composition, interfaces, and inheritance have on the ADL specifications of components and systems. Objectoriented programming languages have greatly increased the opportunities for reuse through composition and inheritance. As described by Gamma [2], these common techniques are complementary and allow functionality to be easily reused. Their experience leads them to two principles of reusable object oriented design: P1) Program to an interface, not an implementation; and (P2) Favor object composition over class inheritance. In this paper, ....
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Software. AddisonWesley, Reading, MA, 1995.
....by the compiler are equipped with methods that will print their reverse compilation into the standard textual specification format, so it may conveniently be inspected just as if it had been generated directly. The Proteus compiler also supplies an interface for applying the Visitor design pattern [GOF95] so a client can easily manipulate the tree before it is converted to the delta format. In the interest of simplicity, Proteus currently requires one delta file per class. However Java supports the combination of many class files into a single jar file. It would not be difficult to extend Proteus ....
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns --- Elements of Reusable Software. Addison-Wesley, 1995.
No context found.
E. Gamma, R. Helm, R. Johnson, J. Vlissides: "Design Patterns. Elements of Reusable Software", Addison Wesley 1994.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC