我想了解并应用SOLID原则。 关于依存倒置原则,这是否意味着禁止对象的合成/聚合? 因此,必须始终使用一个接口来访问另一个类方法?固体:DIP是否意味着禁止物体的合成/聚合?
我的意思是:
class ServiceClass {
void serviceClasshelper();
}
class MainClass {
void MainClass(ServiceClass service); // To use serviceClasshelper
}
必须改成:
class ServiceInterface {
virtual void interfaceHelper() =0;
}
class ServiceClass : public ServiceInterface {
void serviceClasshelper();
void interfaceHelper() { serviceClasshelper(); };
}
class MainClass {
void MainClass(ServiceInterface service); // Uses interfaceHelper
}
我认为(或至少我希望如此),我明白一个道理。 但是不知道它是否可以像这样改写。 的确,我读到的关于DIP的东西建议使用接口。
谢谢!
非常感谢您的回答!我觉得你完全是我的担忧。关于体验与设计模式使用的部分可能会为我节省很多时间。您可能会让我在使用设计模式的不同方式之间漫游很多时间。非常感谢您的回答:)。 – Plouff
我认为系统越复杂,你就会应用DIP越多。 –
@AdrianIftode:如果应用DIP使系统不那么复杂,我会称之为“糟糕设计”系统而不是“复杂”系统。这里提供了一个参考资料,它提到了安装设计模式时系统的复杂程度:https://youtu.be/gwIS9cZlrhk?t = 4153 –