设计模式的核心总结起来就一句话:用
抽象
构建框架,用实现
扩展细节。目的就是代码修改的改动量最小
设计模式六大原则
单一职责原则
很好理解,一个类
职责要单一
,不要承载过多的职责,就比如说我们电脑上所有的文件,不可能都放在一起,需要很多个文件夹,而文件夹中的文件相关性越高、文件数量越少,这个文件夹的职责就更单一
开闭原则(开放扩展修改关闭)
开放扩展关闭修改
,实际应用最多的就是抽象类
,对一些不变的都进行了抽象,一些变化的交由实现类进行实现
里氏替换原则(子类实现父类的要求)
主要定义了一些关于继承方面的原则
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,一般标记为
final
- 子类可以增加自己持有的方法
- 子类重载父类方法时,方法的
输入参数要比父类宽松
- 子类重载父类方法时,方法的
输出返回值要比父类的更严格
依赖倒置(每个类都有抽象层)
依赖倒置是实现开闭原则的途径之一,总的来说就是
使用抽象类或接口去制定好规范和契约
,而不涉及具体操作,将细节实现交给子类去做
每个类都有抽象类或接口
- 对象变量的申明类型尽量是接口或抽象类,比如
List<String> list = ArrayList<>();
- 任何类都不应该从具体类进行派生,正常是要从抽象类或接口
- 使用继承时尽量遵循里氏替换原则
接口隔离原则(接口)
将一个范围很
大接口拆分为更多小接口
,只让客户实现需要他们实现的接口
,就是说接口粒度更小且是必须的(和单一职责类似,单一职责强调职责,接口隔离强调接口)
- 接口在一定限度下尽量小
- 只提供调用则需要的方法,屏蔽不需要的方法
- 深入了解业务逻辑后进行接口拆分,适应场景
- 使接口用最少的方法去完成最多的事情
迪米特法则(一个对象对其他对象有最少的了解)
主要目的就是
降低类与类之间的耦合度
,如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。
- 类与类之间的耦合越弱越好
- 类结构设计上,尽量降低类成员的访问权限,比如我们属性一般都是
private
- 类设计上,优先将一个类设置成不变类,比如很多类都是
final
- 一个类中,将引用其它对象的次数降到最低,就是说尽量少引用
- 不要暴露属性成员,而应该提供访问器
get、set
- 谨慎使用序列化(Serializable),容易有反序列化的漏洞
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/17887.html