From a4e4091b8638d655fe23d4441a34559357ad3906 Mon Sep 17 00:00:00 2001 From: Pradeep Dhupar <148972812+PradeepITT@users.noreply.github.com> Date: Wed, 22 May 2024 10:54:56 +0530 Subject: [PATCH] Add files via upload --- .../Models/Employee.cpp | 20 ++++++++++++++++ .../Models/Employee.h | 23 +++++++++++++++++++ .../Repository/Database.cpp | 8 +++++++ .../Repository/Database.h | 13 +++++++++++ .../Repository/IDatabase.h | 14 +++++++++++ .../Services/EmployeeService.cpp | 8 +++++++ .../Services/EmployeeService.h | 17 ++++++++++++++ 7 files changed, 103 insertions(+) create mode 100644 Dependency Inversion Principle/Models/Employee.cpp create mode 100644 Dependency Inversion Principle/Models/Employee.h create mode 100644 Dependency Inversion Principle/Repository/Database.cpp create mode 100644 Dependency Inversion Principle/Repository/Database.h create mode 100644 Dependency Inversion Principle/Repository/IDatabase.h create mode 100644 Dependency Inversion Principle/Services/EmployeeService.cpp create mode 100644 Dependency Inversion Principle/Services/EmployeeService.h diff --git a/Dependency Inversion Principle/Models/Employee.cpp b/Dependency Inversion Principle/Models/Employee.cpp new file mode 100644 index 0000000..907a696 --- /dev/null +++ b/Dependency Inversion Principle/Models/Employee.cpp @@ -0,0 +1,20 @@ +#include "Employee.h" + +Employee::Employee(const string& name, const string& address) + : name(name), address(address) {} + +string Employee::getName() const { + return name; +} + +string Employee::getAddress() const { + return address; +} + +void Employee::setName(const string& name) { + this->name = name; +} + +void Employee::setAddress(const string& address) { + this->address = address; +} diff --git a/Dependency Inversion Principle/Models/Employee.h b/Dependency Inversion Principle/Models/Employee.h new file mode 100644 index 0000000..5d7bf4e --- /dev/null +++ b/Dependency Inversion Principle/Models/Employee.h @@ -0,0 +1,23 @@ +#ifndef EMPLOYEE_H +#define EMPLOYEE_H + +#include + +using namespace std; + +class Employee { +public: + Employee(const string& name, const string& address); + + // Getters and setters + string getName() const; + string getAddress() const; + void setName(const string& name); + void setAddress(const string& address); + +private: + string name; + string address; +}; + +#endif // EMPLOYEE_H diff --git a/Dependency Inversion Principle/Repository/Database.cpp b/Dependency Inversion Principle/Repository/Database.cpp new file mode 100644 index 0000000..767674a --- /dev/null +++ b/Dependency Inversion Principle/Repository/Database.cpp @@ -0,0 +1,8 @@ +#include "Database.h" +#include + +using namespace std; + +void Database::save(const Employee& employee) { + cout << "Saving employee " << employee.getName() << " to the database." << endl; +} diff --git a/Dependency Inversion Principle/Repository/Database.h b/Dependency Inversion Principle/Repository/Database.h new file mode 100644 index 0000000..ce5cbac --- /dev/null +++ b/Dependency Inversion Principle/Repository/Database.h @@ -0,0 +1,13 @@ +#ifndef DATABASE_H +#define DATABASE_H + +#include "IDatabase.h" + +using namespace std; + +class Database : public IDatabase { +public: + void save(const Employee& employee) override; +}; + +#endif // DATABASE_H diff --git a/Dependency Inversion Principle/Repository/IDatabase.h b/Dependency Inversion Principle/Repository/IDatabase.h new file mode 100644 index 0000000..0f2ff7f --- /dev/null +++ b/Dependency Inversion Principle/Repository/IDatabase.h @@ -0,0 +1,14 @@ +#ifndef IDATABASE_H +#define IDATABASE_H + +#include "Employee.h" + +using namespace std; + +class IDatabase { +public: + virtual void save(const Employee& employee) = 0; + virtual ~IDatabase() = default; +}; + +#endif // IDATABASE_H diff --git a/Dependency Inversion Principle/Services/EmployeeService.cpp b/Dependency Inversion Principle/Services/EmployeeService.cpp new file mode 100644 index 0000000..76eccdb --- /dev/null +++ b/Dependency Inversion Principle/Services/EmployeeService.cpp @@ -0,0 +1,8 @@ +#include "EmployeeService.h" + +EmployeeService::EmployeeService(IDatabase* database) + : database(database) {} + +void EmployeeService::saveEmployee(const Employee& employee) { + database->save(employee); +} diff --git a/Dependency Inversion Principle/Services/EmployeeService.h b/Dependency Inversion Principle/Services/EmployeeService.h new file mode 100644 index 0000000..0d70548 --- /dev/null +++ b/Dependency Inversion Principle/Services/EmployeeService.h @@ -0,0 +1,17 @@ +#ifndef EMPLOYEESERVICE_H +#define EMPLOYEESERVICE_H + +#include "IDatabase.h" + +using namespace std; + +class EmployeeService { +public: + EmployeeService(IDatabase* database); + void saveEmployee(const Employee& employee); + +private: + IDatabase* database; +}; + +#endif // EMPLOYEESERVICE_H