Examples of the Abstract Factory Design Pattern

Could someone please give an example about situations in which you would definitly use the Abstract Factory Design Pattern?

Ok, but they are coupled because Abstract Factory uses Factory methods. Without getting too detailed here, Abstract Factory is useful when you want to swap out entire sets of things (ie. pluggable look and feels). So one subclass of AbstractGUIFactory is MotifGUIFactory while another is WindowsGUIFactory. Your application can gets a specific factory but puts it in an AbstractFUIFactory variable.
AbstractGUIFactory factory = new WindowsGUIFactory();
AbstractButton = factory.makeButton();So you can program generically and swap out entire sets of widgets by changing one line of code.
You should really read Design Patterns by Gamma et al. because it is the definitive book on this topic.

Similar Messages

  • Abstract Factory Design Pattern

    Could someone please explain the abstract factory design pattern in simple english. As far as I understand it is used to create a bunch of related objects based on parameter/s provided at runtime.
    However, why would one use this compared to an Interface.
    I actually am reading a great book on design patterns (Design Pattern by James Cooper) but having a bit of problem really understanding this one.
    Cheers

    As far as I
    understand it is used to create a bunch of related
    objects based on parameter/s provided at runtime. There may be variations but as I understand it basically an Abstract Factory defines two interfaces, one is the factory and one is the product. A good example is iterators in Java. The iterator factory is the Iterable interface and the iterator product is the Iterator interface.
    ArrayList implements Iterable so it's an iterator factory. If you call the iterator() method of an ArrayList object you'll get an Iterator object. The same applies to TreeSet and many other classes.
    The Iterator objects sport the same Interface but they're quite different internally of course (Iterating an array is not the same as iterating a tree) so they're a "family of related products".

  • The drawback of design patterns

    It is more and more important to get the skill of using design patterns as a programmer , and there is many material about it , all of them talking about the benefits of using patterns, But I know that Patterns is not so better as they argued , Patterns also have deficiency , Patterns can not be used every where .....
    What I want here is that I hope to hear heatly discussing about the "the drawback of design patterns" , please using your head , typing what u know here !

    Patterns can not solve the problems such as "code
    scattening" and "code tangling"Okay, so there are some problems that patterns can't solve. Apparently by your logic, the fact that concrete doesn't cure cancer is a deficiency of concrete. I suppose that's logically defensible, but it also contains precisely zero information, so it's a pointless statement.
    , these the
    headaches are in the domain of OO , Design Patterns
    are only smart design idiom within OO , but they can
    not solve the drawback of OO , and Patterns should
    not be used everywhere Okay. So, again, concrete is in the domain of construction, but it cannot solve the drawbacks of construction, so that's a deficiency of concrete. Again, zero information, thus pointless.
    , the places where they should
    be used is the place where u face "May be change in
    the future " ! Patterns are not so much about future change as they are about providing a common vocabulary--a means of communication--and a stock of parts to draw from when solving certain problems.
    Use Patterns add many classes into your code ,Maybe, maybe not.
    Good design adds classes. Poor design stuffs everything into a few bloated classs. Many classes is not necessarily a bad thing, and if you've employed good design, you'll likely have the same design as specified in a pattern. So using patterns doesn't in and of itself add classes. The pattern-ness comes into play in applying the name to the good design you did anyway.

  • Factory design pattern use

    Hi people, I have a question about a design I'm using.
    Lets say I have an object that can be a number between 1 and 100, or another couple of values such as not defined or implicit.
    I had a basic design that looked like this:
    public final class ObjectExample
        public static final ObjectExample NOT_DEFINED = new ObjectExample(-1);
        public static final ObjectExample IMPLICIT = new ObjectExample(-1);
        public static final ObjectExample createObjectExample(int value)
            if ((value < 1) || (value > 100))
                throw new IllegalArgumentException("Value is not valid");
            return new ObjectExample(value);
        private final int value;
        private ObjectExample(int value)
            this.value = value;
        public int getValue()
            return value;
    }Now this code does what I need, I was just wondering about the merits of using a factory method to create the objects. Why shouldn't I just move the logic of checking the value of the supplied value to the constructor and make that public?
    Basically, what I suppose I'm asking is, in this particular example, is there any need to use a "factory" method to create objects?
    Cheers, Boomah :o)

    In this particular case you could certainly put that logic in a constructor. However if you decided you wanted to use a Flyweight pattern and only have one instance of ObjectExample(1) instead of many, then you would need a factory method that created that one instance and always returned it when called with 1 as its parameter. You couldn't do that with a constructor.

  • Factory Design Pattern with Java generics

    I was wondering if it was possible to implement the factory pattern using a generic like sintax with java5. Something like:
    IFactory factory = new ConcreteFactory();
    Car c=factory.CreateObject<Car>();
    I saw this article the other day http://weblogs.asp.net/pgielens/archive/2004/07/01/171183.aspx
    done in C# for the framework 2.0 and tryed to re-implement it with java5 however I was less then fortunate, can someone do a functional conversion?

    I had to change the signature a bit but this is the best I came with:
    (I don't like I have to write Type.class but if someone has a better idea please share, I deliberatly used classes are return types but you can easily program to the interfaces as well)
    use:
    ConcreteFactory cf=new ConcreteFactory();
    Car c=cf.Create(Car.class);
    public interface Vehicle {
    String getName();
    public class Plane implements Vehicle {
    String name="Mig 29";
    public String getName() {
    return name;
    public class Car implements Vehicle {
    String name="Volvo";
    public String getName() {
    return name;
    public interface IFactory{
    <T> T Create(Class<T> type);
    public class ConcreteFactory implements IFactory {
    public <T extends Vehicle> T Create(Class<T> type) {
    try {
    return type.newInstance();
    } catch (InstantiationException e) {
    return null;
    } catch (IllegalAccessException e) {
    return null;
    }

  • Using IOC with Factory Design pattern

    Say I have two different data sources, one XML and another Database.I have 2 DAO's corresponding to the 2 data source and a DAOFactory to get the DAO.
    Now, I want to use IOC from the service layer to get appropriate DAO. Using DAOFactory will break IOC.
    Will it be a good idea to inject DAOFactory into the service layer?
    I somehow don't feel comfortable in doing so, Factories seem to be more or less like utility and injecting utility into the service does not seem a good idea to me.
    Please let me know how to get around this situation.
    Regards,
    Joshua

    JoshuaAntony wrote:
    Say I have two different data sources, one XML and another Database.I have 2 DAO's corresponding to the 2 data source and a DAOFactory to get the DAO.
    Now, I want to use IOC from the service layer to get appropriate DAO. Using DAOFactory will break IOC.
    Will it be a good idea to inject DAOFactory into the service layer?
    I somehow don't feel comfortable in doing so, Factories seem to be more or less like utility and injecting utility into the service does not seem a good idea to me.To me, this sounds like you're getting bogged down in abstract terminology and worrying about vague "rules" rather than considering the problem. Do you even need a DAOFactory? As the other guy said, a DAO interface, implemented however you like, injected where it's needed, is nice and simple, and avoids all those bothersome factories you probably don't need

  • Builder Design Pattern

    Hi,
    I'm trying to implement the Abstract Builder design pattern for a fairly complex object. If I understand correctly, the builder creates the whole object in one shot; as in, the pieces are hidden from the client while the object is being built. So suppose the object that I need to include as an "ingredient" is more complex. I have a class called Route (with different types that extend it) that requires a list of segments and an origin and destination. The part I'm confused on is how to build a route if I can't provide parameters for it. All the examples I've found so far have had simple objects for the ingredients that didn't require any personalization. Sorry if I'm being unclear. Ask if you need clarification.

    Could be. I'm far from a pattern guru. The key here is to find an approach that works. If perusing a catalog of patterns give you and idea of how to solve your problem, great, use it. On the other hand, if you already have a solution, and it happens to fit a pattern, then cool, now you have a name for what you did. The wrong thing to do would be to try to force it into a particular pattern that doesn't fit.
    The value in patterns is twofold: 1) as a means of communication of some fairly complex, commonly used, abstract concepts, as in, "I suggest a Builder Pattern for this," and the other guy knows exactly what you're talking about, or at least has a general idea and knows where to go for details, and 2) as a catalog of common solutions to existing problems, as in, "Dang it, I have this problem with such-and-such interactions among the pieces, I'm not sure how to structure a solution, but I bet somebody else has done it before... Oh, yeah! Builder Pattern! That'll work!"

  • BlazeDS and Abstract Factory Pattern

    Hi All,
    I was trying to extend my application using the Factory Method. But, I identified that I need to use an abstract Factory pattern to meet my design requirements. In other words I need to create a FactoryInstance based on a input. Will that be possible.
    Any help?????
    -Ram V

    The Factory pattern is meant to give you the ability to generically construct objects (rather than explicitly declare what you want to create via the "new" keyword you defer to a factory and take what it gives you) The Abstract Factory pattern is meant to give you the ability to generically construct Factories. So, for instance, say you want to create widgets with a certain look and feel. You could use the Factory pattern and ask a ButtonFactory to make buttons and a TextArea factory to make TextAreas, but since you want the same look and feel for all widgets you could just ask the WidgetFactory to give you a WidgetFactory for a given Look and Feel and then ask it to make Buttons and TextAreas and whatever else, knowing that it has handled which kind of button and whatever else you need.
    Hope that made sense, good luck
    Lee

  • Design Patterns, The Decorator

    When trying to implement the classic decorator design patterns your decorator executable might look like this:<br><br>
    <pre>
      METHOD validate.
        DATA: Validator TYPE REF TO validation_manager.
       CREATE OBJECT:
         Validator TYPE validation_manager.
        ,Validator TYPE validate_format                 EXPORTING x_validator = Validator
        ,Validator TYPE validate_values                 EXPORTING x_validator = Validator
        ,Validator TYPE validate_relation_input       EXPORTING x_validator = Validator
        ,Validator TYPE validate_relation_database EXPORTING x_validator = Validator.
        me->lst_result = validator->validate( me->lst_data ).
        WRITE: / 'Processing Validate Activity'.
      ENDMETHOD.                    "validate</pre><br><br>
    The validate method ends up in endless resurcion in the memory. The reason is that I'm using the same variable as the resulting instanse and as parameter. It seems like the constructor treats both the result and the parameter as the same field/instanse regardless import parameter such as VALUE/REFERENCE. If I change the method to use an extra field in the method validate like:
    <br><br><pre>
      METHOD validate.
        DATA:
          validator  TYPE REF TO validation_manager
         ,recursive  TYPE REF TO validation_manager.
        CREATE OBJECT validator TYPE validation_manager.
        recursive ?= validator.
        CREATE OBJECT validator TYPE validate_format
          EXPORTING x_validator = recursive.
        recursive ?= validator.
        CREATE OBJECT validator TYPE validate_values
         EXPORTING x_validator = recursive.
        recursive ?= validator.
        CREATE OBJECT validator TYPE validate_relation_input
          EXPORTING x_validator = recursive.
        recursive ?= validator.
        CREATE OBJECT validator TYPE validate_relation_database
          EXPORTING x_validator = recursive .
        recursive ?= validator.
        me->lst_result = validator->validate( me->lst_data ).
        WRITE: / 'Processing Validate Activity'.
      ENDMETHOD.                    "validate</pre><br><br>
    Now the decorator engine works, but why does the first implementation not work when the same one executes fine in php, c++, delphi, java and other languages.<br><br>
    If you do not know what I'm trying to discuss, look up "Design Patterns - Simply", and jump to the chapter about the decorator design pattern. I'm trying to use this design pattern for a validation manager within my Business Process Engine, which needs to be able to configure what types of validation needed for on specific process (BPMN).<br><br>

    Hi Matt, Thanks for the formatting..:) I will post the complete program as it's only a prototype program. Trying to get the format under control.
    </body>
    Report  ZDP_DECORATOR_XMP01
    REPORT  zdp_decorator_xmp01.
    parameters: bestimpl  TYPE boolean_01 default 0.
    TYPES:
      BEGIN OF processdata
       ,name   TYPE char30
       ,street TYPE char30
       ,zip    TYPE char5
       ,city   TYPE char30
       ,email  TYPE char50
       ,phone  TYPE char20
    ,END OF processdata
    ,BEGIN OF result
       ,msgid  TYPE msgid
       ,msgtyp TYPE msgty
       ,msgno  TYPE msgno
       ,status TYPE char1
    ,END OF result.
    CONSTANTS:
    true     TYPE boolean_01 VALUE 1
    ,false    TYPE boolean_01 VALUE 0.
    CLASS validationmanager DEFINITION
    CLASS validation_manager DEFINITION.
      PUBLIC SECTION.
        METHODS:
          validate
            IMPORTING
              x_data             TYPE processdata
            RETURNING
              value(y_result)    TYPE result.
    ENDCLASS.
    CLASS validationmanager IMPLEMENTATION
    CLASS validation_manager IMPLEMENTATION.
      METHOD validate.
        WRITE: / 'Common validation'.
      ENDMETHOD.                    "validate
    ENDCLASS.
    CLASS Validate_Decorator DEFINITION
    CLASS validate_decorator DEFINITION INHERITING FROM validation_manager ABSTRACT .
      PUBLIC SECTION.
        DATA: validator TYPE REF TO validation_manager.
    ENDCLASS. 
    CLASS validate_format DEFINITION
    CLASS validate_format DEFINITION INHERITING FROM validate_decorator.
      PUBLIC SECTION.
        METHODS:
          constructor
           IMPORTING value(x_validator) TYPE REF TO validation_manager
         ,validate REDEFINITION.
    ENDCLASS.   
    CLASS validate_format IMPLEMENTATION
    CLASS validate_format IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD super->constructor( ).
        me->validator = x_validator.
      ENDMETHOD.                    "constructor
      METHOD validate.
        y_result = validator->validate( x_data ).
        IF y_result-status IS INITIAL.
          WRITE: / 'Now doing the format checks'.
        ENDIF.
      ENDMETHOD.                    "validate
    ENDCLASS.
    CLASS validate_values DEFINITION
    CLASS validate_values  DEFINITION INHERITING FROM validate_decorator.
      PUBLIC SECTION.
        METHODS:
          constructor
           IMPORTING value(x_validator) TYPE REF TO validation_manager
         ,validate REDEFINITION.
    ENDCLASS.
    CLASS validate_values IMPLEMENTATION
    CLASS validate_values IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD super->constructor( ).
        me->validator = x_validator.
      ENDMETHOD.                    "constructor
      METHOD validate.
        y_result = validator->validate( x_data ).
        IF y_result-status IS INITIAL.
          WRITE: / 'Now doing the values checks'.
        ENDIF.
      ENDMETHOD.                    "validate
    ENDCLASS. 
    CLASS validate_relation_input DEFINITION
    CLASS validate_relation_input DEFINITION INHERITING FROM validate_decorator.
      PUBLIC SECTION.
        METHODS:
          constructor
           IMPORTING value(x_validator) TYPE REF TO validation_manager
         ,validate REDEFINITION.
    ENDCLASS.
    CLASS validate_relation_input IMPLEMENTATION
    CLASS validate_relation_input IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD super->constructor( ).
        me->validator = x_validator.
      ENDMETHOD.                    "constructor
      METHOD validate.
        y_result = validator->validate( x_data ).
        IF y_result-status IS INITIAL.
          WRITE: / 'Now doing the relation input checks'.
        ENDIF.
      ENDMETHOD.                    "validate
    ENDCLASS.
    CLASS validate_relation_database DEFINITION
    CLASS validate_relation_database DEFINITION INHERITING FROM validate_decorator.
      PUBLIC SECTION.
        METHODS:
          constructor
           IMPORTING value(x_validator) TYPE REF TO validation_manager
         ,validate REDEFINITION.
    ENDCLASS.  
    CLASS validate_relation_database IMPLEMENTATION
    CLASS validate_relation_database IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD super->constructor( ).
        me->validator = x_validator.
      ENDMETHOD.                    "constructor
      METHOD validate.
        y_result = validator->validate( x_data ).
        IF y_result-status IS INITIAL.
          WRITE: / 'Now doing the relation database checks'.
        ENDIF.
      ENDMETHOD.                    "validate
    ENDCLASS.  
    CLASS process_execution DEFINITION
    CLASS process_execution DEFINITION.
      PUBLIC SECTION.
        METHODS:
          startevent
         ,getdata
         ,validate
         ,process
         ,endevent.
      PRIVATE SECTION.
        DATA:
          lst_data   TYPE processdata
         ,lst_result TYPE result.
    ENDCLASS.                    "process_execution DEFINITION
    CLASS process_execution IMPLEMENTATION
    CLASS process_execution IMPLEMENTATION.
      METHOD startevent.
        WRITE: / 'Processing startevent'.
      ENDMETHOD.                    "startevent
      METHOD getdata.
        me->lst_data-name        = 'Hans Andersen'.
        me->lst_data-street      = 'H.C Andersens Boulevard 112'.
        me->lst_data-zip         = '1557'.
        me->lst_data-city        = 'København'.
        me->lst_data-email       = 'hcATandersen.dk'.
        me->lst_data-phone       = '0045-31162211'.
        WRITE: / 'Processing Get_Data Activity'.
      ENDMETHOD.                    "getdata
      METHOD validate.
        DATA:
          validator  TYPE REF TO validation_manager
         ,recursive  TYPE REF TO validation_manager
        IF bestimpl = true.
          CREATE OBJECT:
            validator TYPE validation_manager
           ,validator TYPE validate_format EXPORTING x_validator = recursive
           ,validator TYPE validate_values EXPORTING x_validator = recursive
           ,validator TYPE validate_relation_input EXPORTING x_validator = recursive
           ,validator TYPE validate_relation_database EXPORTING x_validator = recursive.
        ELSE.
          CREATE OBJECT validator TYPE validation_manager.
          recursive ?= validator.
          CREATE OBJECT validator TYPE validate_format
            EXPORTING x_validator = recursive.
          recursive ?= validator.
          CREATE OBJECT validator TYPE validate_values
           EXPORTING x_validator = recursive.
          recursive ?= validator.
          CREATE OBJECT validator TYPE validate_relation_input
            EXPORTING x_validator = recursive.
          recursive ?= validator.
          CREATE OBJECT validator TYPE validate_relation_database
            EXPORTING x_validator = recursive .
          recursive ?= validator.
        ENDIF.
      Recursive call of the validate and it's successors
        me->lst_result = validator->validate( me->lst_data ).
        WRITE: / 'Processing Validate Activity'.
      ENDMETHOD.                    "validate
      METHOD process.
        WRITE: / 'Processing Process Activity'.
      ENDMETHOD.                    "process
      METHOD endevent.
        WRITE: / 'Processing endevent'.
      ENDMETHOD.                    "endevent
    ENDCLASS.    
    CLASS mainapp DEFINITION                                             *
    CLASS mainapp DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          main.
    ENDCLASS.   
    CLASS mainapp IMPLEMENTATION                                         *
    CLASS mainapp IMPLEMENTATION.
      METHOD main.
        DATA:
          p89 TYPE REF TO process_execution.
        CREATE OBJECT p89.
        p89->startevent( ).
        p89->getdata( ).
        p89->validate( ).
        p89->process( ).
        p89->endevent( ).
      ENDMETHOD.  
    ENDCLASS.     
    START-OF-SELECTION.
      mainapp=>main( ).
    Edited by: Matt on Dec 22, 2009 2:03 PM Fixed formatting

  • Producer/Consumer Design Pattern with Classes

    I'm starting a new project which involves acquiring data from various pieces of equipment using a GPIB port.  I thought this would be a good time to start using Classes.  I created a GPIB class which contains member data of:  Address, Open State, Error; with member vis such as Set Address, Get Address, Open, Close...general actions that all GPIB devices need to do.  I then created a child class for a specific instrument (Agilent N1912 Power Meter for this example) which inherits from the GPIB class but also adds member data such as Channel A power and Channel B power and the associated Member Functions to obtain the data from the hardware.  This went fine and I created a Test vi for verfication utilizing a typical Event Structure architecture. 
    However, in other applications (without classes) I  typically use the Producer/Consumer Design Pattern with Event Structure so that the main loop is not delayed by any hardware interaction.  My queue data is a cluster of an "action" enum and a variant to pass data.  Is it OK to use this pattern with classes?  I created a vi and it works fine and attached is a png (of 1 case) of it.
    Are there any problems doing it this way?
    Jason

    JTerosky wrote:
    I'm starting a new project which involves acquiring data from various pieces of equipment using a GPIB port.  I thought this would be a good time to start using Classes.  I created a GPIB class which contains member data of:  Address, Open State, Error; with member vis such as Set Address, Get Address, Open, Close...general actions that all GPIB devices need to do.  I then created a child class for a specific instrument (Agilent N1912 Power Meter for this example) which inherits from the GPIB class but also adds member data such as Channel A power and Channel B power and the associated Member Functions to obtain the data from the hardware.  This went fine and I created a Test vi for verfication utilizing a typical Event Structure architecture. 
    However, in other applications (without classes) I  typically use the Producer/Consumer Design Pattern with Event Structure so that the main loop is not delayed by any hardware interaction.  My queue data is a cluster of an "action" enum and a variant to pass data.  Is it OK to use this pattern with classes?  I created a vi and it works fine and attached is a png (of 1 case) of it.
    Are there any problems doing it this way?
    Including the error cluster as part of the  private data is something I have never seen done and ... well I'll have to think about that one.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Producer/Consumer Design Pattern + DAQmx + Event Structure

    Dear community users,
    at the moment I try to implement the Producer/Consumer Design Pattern into my current project. For this purpose I am trying to make a "minimal-example" in which I use the Producer/Consumer Design Pattern for the data acquisition and analysis (display in GraphXY, calculation etc..) process. In the Producer Loop I perform the data readings via DAQmxRead.VI and in the Consumer Loop, in this example only, I display the data in a GraphXY. At the same time I want to control the data acquisition via an Event Structure, for example Start Measurement/Stop Measurement Buttons. To configure the measurement time, for example if the user only wants to measure 150 sec, I use the Time Out Event of the Event Structure. This is a technique which is often used, when data acquisition and Event Structures are used at the same time (Excuse me if this is wrong!). Due to understand the Producer/Consumer Design Pattern I looked up in the Template\Framework of LabVIEW.
    In the attachment you will find my "minimal-example", which -sadly-, not working. What should I do ? 
    Thank you.
    Best regards,
    tugrul öztürk
    Attachments:
    daqEngine_PCP.vi ‏35 KB

    Your VI will never stop due to the Ok Button that stops the producer loop is read OUTSIDE of the loop.  Add an event case for it.
    Move the Start and the Ok Button inside of their respective event cases.  This will allow the latch to reset when they are read.
    Change the Ok Button to a stop button.
    Use a Greater Or Equal instead of Equal for the measurement time comparison.  What if somebody randomly changes it to 0 on you?  Again, you will never stop.
    Is the DAQ only supposed to read for "Measurement Time".  Right now, it constantly reads.  So if you don't use the DAQmx Read, you will get a buffer overflow error.  You need to put the DAQmx Start Task inside of the Start event case and then the Stop DAQmx Task inside of the Timeout event case when the measurement time is exceeded.  You should also perform the read regardless inside of the Timeout event case.
    I HATE telling the consumer loop to stop by destroying the queue.  You can look data that way.  Instead, send something an empty array.  In the consumer, check for an empty array.  If it is empty, stop.  Destroy the queue only AFTER BOTH LOOPS HAVE COMPLETED.
    You should also report your errors in some way.  Simple Error Handler at the minimum.
    Since you are using Continous Samples, don't limit the buffer.  Leave the Samples per Channel unwired on the DAQmx Timing VI.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to create plug and play design pattern on a environment

    Hi All,
    Help me to get a best design for my problem statement.
    Problem Statement: I have to create a platform where I should be able to plug and play different components. explaining better with example
    Example:
    1. I have to create a platform for school
    2. In this school platform we have to plug in multiple components like "Student", "Teacher", "Subjects", "ClassPeriods" etc.,
    3. These components should be easily plug/unplug and play
    4. Like, the component "ClassPeriods" want to purchase from Vendor 1 and plug it to "School" platform it should work.
    5. Incase if we want to unplug the "ClassPeriod" component provided bfy Vendor 1 from "School" platform and want to plug the "ClassPeriod" from Vendor 2. then the Design should support without any extra effort.
    Suggest me the best design pattern for the problem
    This design pattern is for ASP.Net
    Thanks,
    S.Kannan

    Sounds like you're looking at 'Composition'. As a background, and possible solution, take a look at MEF;
    http://mef.codeplex.com/
    http://pauliom.wordpress.com

  • Design patterns in portlet development

    Hello,
    I am a student at the Technical University in Munich, Germany and I am working on a university project on design patterns for portlets.
    The focus of my work is researching the best practices when developing a web portlet, especially which design patterns are the most suitable for portlets development.
    For example, the MVC pattern is one of the most popular design patterns for portlets.
    I am writing to you to ask which design patterns are used in the development of your portlets from the SAP Enterprise Portal.
    - What design patterns do you use for your portlets?
    - Do you use MVC among others?
    - Do you have your own design patterns?
    - Do you use any templates or guidelines for portlet development that involve design patterns?
    I am looking forward to your answer. Any answer would help with the research, as experts’ interviews are part of my work in the project.
    I appreciate any references you consider to be related to my search.
    Thank you,
    Julia Alexandrescu
    Department of Informatics
    Technical University Munich
    Email: [email protected]

    Hi raaj,
    I have a query related to this.
    I am a beginner to portlets.
    Say I have an existing struts application.What all do i need to modify or add to make a .portlet file out of it so as to make it deployable in Weblogic 8.1 SP3?
    Is adding a portlet.xml enough?
    if yes, what would the portlet.xml look like?
    Do i need to add a separate class as well?
    I couldnt get any sufficient answers from other forums.
    Can you please help?
    Thanks & Regards,
    Nishant

  • Design Patterns in Dynamic Programming

    I mentioned this on a thread some time ago - that many of the GoF patterns disappear in languages such as Lisp, but didn't have the reference handy. Came across it again today so I thought I'd post the link:
    http://www.norvig.com/design-patterns/
    Pete

    hi sourdi
    Below are the list of Design pattern in abap .
    Singleton: ensuring single class instantiation
    Adapter: making class interfaces compatible
    Factory: encapsulating object creation
    MVC: decoupling business logic from the view
    Facade: providing a simplified interface
    Composite: treating individual objects and compositions uniformly
    Decorator: forming a dynamic chain of components to be used as one by the client
    regards
    chinnaiya P

  • Design Patterns in ABAP.

    Hi,
    I want to know about the Design Patterns in ABAP.
    Regards,
    Sourav

    hi sourdi
    Below are the list of Design pattern in abap .
    Singleton: ensuring single class instantiation
    Adapter: making class interfaces compatible
    Factory: encapsulating object creation
    MVC: decoupling business logic from the view
    Facade: providing a simplified interface
    Composite: treating individual objects and compositions uniformly
    Decorator: forming a dynamic chain of components to be used as one by the client
    regards
    chinnaiya P

Maybe you are looking for