Sobes.tech
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>);
};