引言
个人认为在学习设计模式之前先:学习UML的类图、时序图、设计原则等知识点有助于更好理解设计模式
一、开闭原则
开闭原则是原则的基础。
对扩展开放,对修改关闭。
二、依赖倒置
对接口编程,依赖于抽象而不依赖于具体。
三、单一原则
不要存在多于一个导致类变更的原因
例如:定义一个鸟的Java类—鸟用翅膀飞,鸵鸟用脚走。
根据原则拆分为飞鸟类与行走类。飞鸟是翅膀飞,鸵鸟、企鹅用脚走
四、接口隔离原则
使用多个隔离的接口,避免使用总接口。防止子类造成方法冗余。
鸟类行为可能出现游泳、飞、吃;
对于企鹅是游泳,没有飞。
对于飞鸟是非,可能没有游泳。
五、迪米特原则
一个实体应当尽量少的与其他实体之间发生相互作用(朋友交流不予陌生人说话)
朋友:属性、参数、返回值。
六、里氏变换原则
任何基类可以出现的地方,子类一定可以出现。这个是“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
七、合成复用原则
多使用合成聚合,少使用继承