快速理解设计模式六大原则

it2025-04-28  17

设计模式的核心总结起来就一句话:用抽象构建框架,用实现扩展细节。目的就是代码修改的改动量最小

设计模式六大原则

单一职责原则

很好理解,一个类职责要单一,不要承载过多的职责,就比如说我们电脑上所有的文件,不可能都放在一起,需要很多个文件夹,而文件夹中的文件相关性越高、文件数量越少,这个文件夹的职责就更单一

开闭原则(开放扩展修改关闭)

开放扩展关闭修改,实际应用最多的就是抽象类,对一些不变的都进行了抽象,一些变化的交由实现类进行实现

里氏替换原则(子类实现父类的要求)

主要定义了一些关于继承方面的原则

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,一般标记为final子类可以增加自己持有的方法子类重载父类方法时,方法的输入参数要比父类宽松子类重载父类方法时,方法的输出返回值要比父类的更严格

依赖倒置(每个类都有抽象层)

依赖倒置是实现开闭原则的途径之一,总的来说就是使用抽象类或接口去制定好规范和契约,而不涉及具体操作,将细节实现交给子类去做

每个类都有抽象类或接口对象变量的申明类型尽量是接口或抽象类,比如List<String> list = ArrayList<>();任何类都不应该从具体类进行派生,正常是要从抽象类或接口使用继承时尽量遵循里氏替换原则

接口隔离原则(接口)

将一个范围很大接口拆分为更多小接口,只让客户实现需要他们实现的接口,就是说接口粒度更小且是必须的(和单一职责类似,单一职责强调职责,接口隔离强调接口)

接口在一定限度下尽量小只提供调用则需要的方法,屏蔽不需要的方法深入了解业务逻辑后进行接口拆分,适应场景使接口用最少的方法去完成最多的事情

迪米特法则(一个对象对其他对象有最少的了解)

主要目的就是降低类与类之间的耦合度,如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。

类与类之间的耦合越弱越好类结构设计上,尽量降低类成员的访问权限,比如我们属性一般都是private类设计上,优先将一个类设置成不变类,比如很多类都是final一个类中,将引用其它对象的次数降到最低,就是说尽量少引用不要暴露属性成员,而应该提供访问器get、set谨慎使用序列化(Serializable),容易有反序列化的漏洞
最新回复(0)