Принцип ISP в C ++

Мне нужно выполнить проверку этого кода и проверить, где нарушается принцип разделения интерфейса (ISP). не могли бы вы мне помочь, пожалуйста?

      #include <stdexcept>

// Phone Interface (not Apple product)
struct IPhone
{
    virtual void call() const = 0;
    virtual void sms() const = 0;
    virtual void fax() const = 0;
};

struct HomePhone : public IPhone
{
public:
    virtual void call() { std::cout << "E.T. Phone Home" << std::endl; }

    virtual void sms() { throw std::runtime_error("Unsupported function"); }

    virtual void fax() { std::cout << "E.T. Fax Home" << std::endl; }
};

struct SmartPhone : public IPhone
{
    virtual void call() { std::cout << "E.T. uses Android" << std::endl; }

    virtual void sms() { std::cout << "E.T. SMS Home" << std::endl; }

    virtual void fax() { throw std::runtime_error("Unsupported function"); }
};

0 ответов

Другие вопросы по тегам