1.单一职责原则
单一职责约定一个类应该有且仅有一个改变类的原因
视频观看的角色分为 访客用户(480p)、普通会员(720p)、VIP会员(1080p),以及是否有广告
违背原则方案
创建一个VideoUserService类,创建一个方法,通过if…else if…else进行判断
虽然看过去好像没什么问题,但是很多东西堆在一起,难维护!!!
单一职责原则改善方案
定义一个IVideoUserService接口,内部定义两个方法
void definition();//视频清晰度
void advertisement();//播放方式,是否有广告
分别创建 访客用户、普通会员、VIP会员对应的三个类,都实现IVideoUserService接口,实现方法中实现具体的业务需求
这样设计,当某个角色需要拓展功能或者维护功能时,只需找到对于的类修改即可
2.开闭原则
对拓展开放,对修改关闭
开闭原则的核心思想也可以理解为面向抽象编程
3.里氏替换原则
简单来说,之内可以扩展父类的功能,但不能改变父类原有的功能。
也就是说:当子类继承父类时,除添加新的方法且完成新增功能外,尽量不要重写父类的方法。这句包含四点含义:
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
- 子类可以增加自己特有的方法
- 当子类的方法重载父类的方法时,方法的前置条件(方法的输入参数)要比父类更加宽松
- 当子类的方法实现父类的方法(重写、重载或实现抽象方法)时,方法的后置条件(即方法的输出或放回值)要比父类的方法更严格或相等。
4.迪米特法则原则(最少知道原则)
一个对象对于其他对象类来说,知道的越少越好。也就是说,两个类之间不要有过多的耦合关系,保持最少关联性。
5.接口隔离原则
程序员因尽量将臃肿庞大的接口拆分成更小和更具体的接口,让接口中只包含客户感兴趣的方法。
6.依赖倒置原则
抽象不应该依赖于细节,细节应该依赖于抽象。