合肥专业网站优化,杭州哪家公司做网站好,做俄罗斯外贸的网站设计,网站制作有什么好的介绍设计模式是由设计原则迭代出来的 开闭原则#xff1a;一个类应该对扩展开放#xff0c;对修改关闭 稳定的部分稳定住#xff0c;变化的部分扩展 扩展可以通过继承和组合 相关原则#xff1a;单一职责原则、里氏替换原则、接口隔离原则 单一职责原则#xff1a;一个类应该… 设计模式是由设计原则迭代出来的 开闭原则一个类应该对扩展开放对修改关闭 稳定的部分稳定住变化的部分扩展 扩展可以通过继承和组合 相关原则单一职责原则、里氏替换原则、接口隔离原则 单一职责原则一个类应该仅有一个引起它变化的原因 里氏替换原则子类方法复写父类方法时需要实现父类方法的职责避免之前调用发类方法的地方错误 场景多态中虚函数覆盖 如果没有实现原来调用父类方法的地方可能出错 目标对扩展开放、约束了扩展中的继承 接口隔离原则不应该强迫客户依赖于它不用的方法:通过public、private、protected一个类对另一个类的依赖应建立在最小的接口上 迪米特原则最少知道原则尽量降低类与类之间的耦合度 一个对象对其他对象保持最小的了解 目标 高内聚相近的功能应该放在同一个类中不相近不要放在同一个类中低耦合类与类之间的依赖关系要简单清晰依赖越少越好 要求 不该有直接依赖关系的类之间不要有依赖有依赖关系的类之间尽只依赖必要接口
class Network{
public:int Write(int fd,unsigned char* buf,size_t sz);int read(int fd,unsigned char *buf,size_t sz);};
class HTTP{
private:Network *pNet;
};
class Protobuffer{Network *pNet;
};class IEncode{
public:unsigned char * encode(HTTP *p) 0;
};
class IDecode{json * decode(HTTP *p);
};
class A:public IEncode,IDecode{unsigned char*encode(HTTP *p);json * decode(HTTP *p);
};
class B:public IEcode{};
class C:public IDecode{};依赖倒置原则高层模块不应该依赖底层模块两者都依赖于抽象抽象不应该依赖具体实现具体实现应该依赖于抽象抽象确定稳定点 目标高内聚低耦合 要求 高层模块不应该依赖低层模块,两者都依赖于抽象抽象不应该依赖于具体实现 组合优于继承 获取更多Linux C/C资料