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_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

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

Get Started

Recommended Textbook for

Advances In Databases And Information Systems 25th European Conference Adbis 2021 Tartu Estonia August 24 26 2021 Proceedings Lncs 12843

Authors: Ladjel Bellatreche ,Marlon Dumas ,Panagiotis Karras ,Raimundas Matulevicius

1st Edition

3030824713, 978-3030824716

More Books

Students also viewed these Databases questions

Question

Should ABM maximize its profits?

Answered: 1 week ago