Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Use the observer design pattern. Get them to work in Visual Studio or GCC * Add additional properties to Customer if necessary * Add additional

Use the observer design pattern.
Get them to work in Visual Studio or GCC
* Add additional properties to Customer if necessary
* Add additional code to the existing observers to show their functionalities, use the Customer reference to get information about the customer
* Add a third type of "observer" to the project for the Customer
* Prove that this new "observer" is working (by adding outputs)
Your code should include outputs during object Constructor runs. Make changes to the Customer's properties and try notifying the observers.
AddrVerification.cc
include "AddrVerification.h"
#include
using namespace std;
AddrVerification::AddrVerification(void)
{
}
AddrVerification::~AddrVerification(void)
{
}
void AddrVerification::update ( Customer *myCust)
{
// do Address verification stuff here
// can get more information about customer
// in question by using myCust
cout<<"in AddrVerification update"<
using namespace std;
Customer::Customer(void)
{
}
Customer::~Customer(void)
{
}
void Customer::attach( Observer *myObserver)
{
myObs.push_back( myObserver);
}
void Customer::detach( Observer *myObserver)
{
for (int i=0; i< myObs.size(); i++)
{
if (myObs[i]== myObserver)
{
myObs.erase(myObs.begin()+i);
return;
}
}
}
void Customer::notifyObs()
{
// set arg to something that helps
// tell the Observers what happened
for (int i=0; i< myObs.size(); i++)
{
myObs[i]->update(this);
}
}
string* Customer::getState()
{
string *state= new string;
// set state
return 0l;
}
Customer.h
#pragma once
#include
#include
#include
#include "Observer.h"
using namespace std;
class Customer
{
public:
Customer(void);
void attach( Observer *myObserver);
void detach( Observer *myObserver);
string* getState();
void notifyObs();
private:
vector myObs;
public:
~Customer(void);
};
CustomerTest.cc
#include "Observer.h"
#include "Customer.h"
#include "AddrVerification.h"
#include "WelcomeLetter.h"
#include
int main()
{
Customer *customer = new Customer();
WelcomeLetter *wl = new WelcomeLetter();
AddrVerification *av = new AddrVerification();
customer->attach(wl);
customer->attach(av);
customer->notifyObs();
cin.get();
}
Observer.cc
#include "Observer.h"
Observer::Observer(void)
{
}
Observer::~Observer(void)
{
}
Observer.h
#pragma once
class Customer;
class Observer
{
public:
Observer(void);
virtual void update( Customer *myCust)=0;
public:
~Observer(void);
};
WelcomeLetter.cc
#include "WelcomeLetter.h"
#include
using namespace std;
WelcomeLetter::WelcomeLetter(void)
{
}
WelcomeLetter::~WelcomeLetter(void)
{
}
void WelcomeLetter::update( Customer *myCust)
{
// do Welcome Letter stuff
// here can get more
// information about customer
// in question by using myCust
cout<<"in welcome letter update"<

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

\f\f\f\f

Answered: 1 week ago

Question

4. Devise an interview strategy from the interviewers point of view

Answered: 1 week ago