学习的教材是:【IT老齐187】23种设计模式遵循的六大设计原则到底讲了什么?_哔哩哔哩_bilibili
开闭原则:(OCP)
对扩展开放,对修改封闭
单一职责原则(SRP):# 这有点像策略模式的底层原理
如果需要开发的一个功能需求不是一次性的,而且随着业务发展的不断变化而变化,那么当一个Class责任超过两个及以上的职位时
,就在需求的不断迭代、实现类持续扩张的情况下,就会出现难以维护、不好扩展、测试难度大和上线风险高等问题。
里氏替换原则:
简单来说,子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:当子类继承父类时,除添加新的方法且完成新增功
能外,尽量不要重写父类的方法。这句话包括了四点含义:
·子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
·子类可以增加自己特有的方法。
·当子类的方法重载父类的方法时,方法的前置条件(即方法的输入参数)要比父类的方法更宽松。
·当子类的方法实现父类的方法(重写、重载或实现抽象方法)时,方法的后置条件(即方法的输出或返回值)要比父类的方法更严格或与父类的方法相等。
案例:抽像银行卡父类:
在抽象银行卡类中,提供了基本的卡属性,包括卡号、开卡时间及三个核心方法。加钱;减钱。
当然,实际的业务开发抽象出来的逻辑会比模拟场景多一些。接下来继承这个抽象类,实现信用卡和储蓄卡的功能逻辑
迪米特原则(LoD)或者 最少知道原则(LKP):
例如:老师需要负责具体某一个学生的学习情况,而校长会关心老师所在班级的总体成绩,不会过问具体某一个学生的学习情况。
接口隔离原则(ISP):
要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。
案例:
Servlet事件监听器可以监听ServletContent、httpMessage、ServletDemand等区域对象的创建和销售过程,以及监听这些区域对象属性的修改。