Skip to content
Snippets Groups Projects
Commit 0b0355ce authored by Nico's avatar Nico
Browse files

Controladores como singleton

parent e572de3e
Branches
No related tags found
No related merge requests found
*.o *.o
main
...@@ -93,7 +93,7 @@ int main(){ ...@@ -93,7 +93,7 @@ int main(){
// Cria Biblioteca // Cria Biblioteca
cout << "> Instanciando Biblioteca" << endl; cout << "> Instanciando Biblioteca" << endl;
Biblioteca bib; Biblioteca bib = Biblioteca::getInstance();
// Cria Usuarios // Cria Usuarios
cout << "> Criando Usuarios" << endl; cout << "> Criando Usuarios" << endl;
......
...@@ -3,12 +3,16 @@ ...@@ -3,12 +3,16 @@
// Constructor // Constructor
Biblioteca::Biblioteca() {} Biblioteca::Biblioteca() {}
// Methods // Methods
Biblioteca& Biblioteca::getInstance() {
static Biblioteca instancia = Biblioteca();
return instancia;
}
ControladorObras Biblioteca::getContObras(){ ControladorObras Biblioteca::getContObras(){
return this->contObras; return ControladorObras::getInstance();
} }
ControladorUsuarios Biblioteca::getContUsuarios(){ ControladorUsuarios Biblioteca::getContUsuarios(){
return this->contUsuarios; return ControladorUsuarios::getInstance();
} }
...@@ -8,17 +8,15 @@ using namespace std; ...@@ -8,17 +8,15 @@ using namespace std;
class Biblioteca { class Biblioteca {
private: private:
ControladorUsuarios contUsuarios;
ControladorObras contObras;
public:
// Construtor // Construtor
Biblioteca(); Biblioteca();
public:
// Methods // Methods
static Biblioteca& getInstance();
ControladorObras getContObras(); ControladorObras getContObras();
ControladorUsuarios getContUsuarios(); ControladorUsuarios getContUsuarios();
}; };
#endif // !__BIBLIOTECA__ #endif // !__BIBLIOTECA__
...@@ -9,6 +9,11 @@ using namespace std; ...@@ -9,6 +9,11 @@ using namespace std;
// Constructor // Constructor
ControladorObras::ControladorObras() {} ControladorObras::ControladorObras() {}
ControladorObras& ControladorObras::getInstance() {
static ControladorObras instancia = ControladorObras();
return instancia;
}
// Method to display all Obras details // Method to display all Obras details
void ControladorObras::mostrarDetalhes() const { void ControladorObras::mostrarDetalhes() const {
cout << endl << "> LISTANDO OBRAS DO SISTEMA:" << endl << endl; cout << endl << "> LISTANDO OBRAS DO SISTEMA:" << endl << endl;
......
...@@ -11,14 +11,15 @@ using namespace std; ...@@ -11,14 +11,15 @@ using namespace std;
class ControladorObras { class ControladorObras {
private: private:
// Constructor
ControladorObras();
vector<Obra> obras; vector<Obra> obras;
public: public:
// Constructor
ControladorObras();
void mostrarDetalhes() const;
// Methods // Methods
static ControladorObras& getInstance();
void mostrarDetalhes() const;
pair<int, int> pesquisarObra(DescricaoObra& descricao); pair<int, int> pesquisarObra(DescricaoObra& descricao);
void adicionarObra(DescricaoObra& descricao); void adicionarObra(DescricaoObra& descricao);
bool solicitarEmprestimo(DescricaoObra& descricao); bool solicitarEmprestimo(DescricaoObra& descricao);
......
...@@ -9,6 +9,11 @@ using namespace std; ...@@ -9,6 +9,11 @@ using namespace std;
// Constructor // Constructor
ControladorUsuarios::ControladorUsuarios() {} ControladorUsuarios::ControladorUsuarios() {}
ControladorUsuarios& ControladorUsuarios::getInstance() {
static ControladorUsuarios instancia = ControladorUsuarios();
return instancia;
}
void ControladorUsuarios::mostrarDetalhes() const { void ControladorUsuarios::mostrarDetalhes() const {
cout << endl << "> LISTANDO USUARIOS DO SISTEMA:" << endl << endl; cout << endl << "> LISTANDO USUARIOS DO SISTEMA:" << endl << endl;
for (const auto& usuario: usuarios) { for (const auto& usuario: usuarios) {
......
...@@ -11,14 +11,15 @@ using namespace std; ...@@ -11,14 +11,15 @@ using namespace std;
class ControladorUsuarios { class ControladorUsuarios {
private: private:
// Constructor
ControladorUsuarios();
vector<Usuario> usuarios; vector<Usuario> usuarios;
public: public:
// Constructor
ControladorUsuarios();
void mostrarDetalhes() const; void mostrarDetalhes() const;
// Methods // Methods
static ControladorUsuarios& getInstance();
bool adicionarUsuario(string nome, string CPF, string endereco, string telefone, string email); bool adicionarUsuario(string nome, string CPF, string endereco, string telefone, string email);
int registrarEmprestimo(string CPF, DescricaoObra& descricao); int registrarEmprestimo(string CPF, DescricaoObra& descricao);
int retornarEmprestimo(string CPF, DescricaoObra& descricao); int retornarEmprestimo(string CPF, DescricaoObra& descricao);
......
...@@ -13,7 +13,7 @@ SRCS = main.cpp biblioteca-test.cpp \ ...@@ -13,7 +13,7 @@ SRCS = main.cpp biblioteca-test.cpp \
../sources/Obra.cpp \ ../sources/Obra.cpp \
../sources/Biblioteca.cpp ../sources/Biblioteca.cpp
OBJ = $(SRCS:.cpp=.o) OBJ = $(SRCS:.cpp=.o)
TARGET = main TARGET = biblioteca
# Regras # Regras
all: $(TARGET) all: $(TARGET)
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment