本文已参与「新人创作礼」活动,一起开启掘金创作之路。
原则
总原则:
开闭原则
- 扩展修改变化点,抽象稳定点。让稳定点与变化点的实现层次分离;
六大原则:
单一职责原则
- 告诉我们类要职责单一。不要存在多个导致类变更的原因,否则就应该将类拆分;
里氏替换原则
- 告诉我们类尽量不要重写/重载父类的成员方法。保证子类替换父类时,父类单位的功能不收到影响;
依赖倒置原则
- 告诉我们要面向接口编程。依赖于抽象而不依赖于具体;
接口隔离原则
- 告诉我们接口要精简单一。使用多个隔离的接口比单个复杂接口要好;
知道最少原则
- 告诉我们类间要降低耦合。要求陌生的类不要作为局部变量/临时变量出现在类中;
合成复用原则
- 告诉我们类间尽量优先使用合成/聚合的方式,而不是继承;
类间关系
1.泛化(is a)
包括继承关系和实现关系
1.1继承 -(空心三角箭头从子类指向父类)
1.2实现 -(空心三角箭头从实现类指向接口)
2.依赖(use a)
一个类在某一时刻会用到另一个类的一部分属性/方法
是一种短暂的关系,依赖总是单向的(箭头从使用类指向被依赖的类)
3.关联(has a)
A类中有B类的引用
3.1单向关联 -(弱的所属关系。处于同一层次)
3.2双向关联 -(应尽量避免双向关联)
3.3自关联
4.聚合(has a)
形式上与单向关联相同,语义上强调部分和整体(空心菱形指向整体)
5.组合(has a)
比聚合更强的关联,两个类同生命周期(实心菱形指向整体)
设计模式分类
总体来说设计模式分为三大类:
- 创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
- 结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
- 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式