Junior — Senior
Assessment of class architecture compliance with SOLID principles
livecode
Task condition
It is necessary to evaluate the presented class structure in terms of adherence to SOLID principles. The analysis should consider the strengths of the current solution and suggest potential improvements, focusing on:
- Single Responsibility Principle (SRP)
- Interface Segregation Principle (ISP)
- Open/Closed Principle (OCP)
- Dependency Inversion Principle (DIP)
#include <iostream>
using namespace std;
class IConnection {
public:
virtual void connect(std::string) = 0;
virtual void disconnect() = 0;
virtual ~IConnection() {}
};
class IFile {
public:
virtual std::vector<std::string> Read() = 0;
virtual void Write(std::vector<std::string>) = 0;
virtual ~IFile() {}
};
class OurFile : public IConnection, public IFile {
void connect(std::string);
void disconnect();
std::vector<std::string> Read();
void Write(std::vector<std::string>);
};