Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
COP 3331 Object Oriented Analysis and Design Chapter 9 – Patterns Jean Muhammad Reference – Object Oriented Software Development Using Java - Jia Overview State Design Pattern Factory Design Pattern Reference – Object Oriented Software Development Using Java - Jia State Design Pattern Category: Behavioral Design Pattern Intent: Allow an object to alter its behavior when its internal state changes. Also known as: Objects for states. Applicability: Use this state when – – an object’s behavior depends upon its state and it must change it’s behavior at run time, depending upon that state. methods have large, multipart conditional statements that depend on the object’s state (ie switch statements). Reference – Object Oriented Software Development Using Java - Jia State Design Pattern Participants in the State Design Pattern: – – – Context: Defines the current state by maintaining an instance of a ConcreteState. State: Defines an interface for encapsulating the behavior associated with a particular state of the context. ConcreteState: place where each class implements a behavior associated with a state of context. Reference – Object Oriented Software Development Using Java - Jia Context State requested handle state.handle() ConcreteStateA ConcreteStateB handle() handle() Reference – Object Oriented Software Development Using Java - Jia Factory Design Pattern Category: Creational Design Pattern Intent: To define an interface for creating an object but defer instantiation to the subclasses. Also known as: Virtual constructor. Applicability: Use this state when – – a class cannot anticipate the class of objects it must create. a class defers to it’s subclasses to specify the objects to create. Reference – Object Oriented Software Development Using Java - Jia Factory Design Pattern Participants in the State Design Pattern: Product: Defines the interface of the objects to be created. – ConcreteProduct: Implements the Product interface, and may provide default implementation. – Creator: Defines one or more factory method that create abstract products, that is, objects of type Product. – ConcreteCreator: Overrides the factory method to return an instance of a ConcreteProduct. The Factory design pattern involves a factory class whose sole responsibility is to create objects. – Reference – Object Oriented Software Development Using Java - Jia Product Creator factoryMethod() anOperation() Product = factoryMethod() ConcreteCreator ConcreteProduct factoryMethod() Return new ConcreteProduct() Reference – Object Oriented Software Development Using Java - Jia