设计模式学习计划

设计模式的学习

设计模式的六大原则

1.单一职责原则(Single Responsibility Principle)

**注意** 单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,
但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。

一个方法承担一个职责:如果要修改用户名称,就调用changeUserName方法;要修改家庭地址,
就调用changeHomeAddress方法;要修改单位电话,就调用changeOfficeTel方法。每个方法的
职责非常清晰明确,不仅开发简单,而且日后的维护也非常容易,大家可以逐渐养成这样的
习惯。

2.里氏替换原则(Liskov Substitution Principle)

定义:
第一种定义,也是最正宗的定义:If for each object o1 of type S there is an object o2 of
type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is
substituted for o2 then S is a subtype of T.(如果对每一个类型为S的对象o1,都有类型为T的对
象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变
化,那么类型S是类型T的子类型。)

● 第二种定义:Functions that use pointers or references to base classes must be able to use
objects of derived classes without knowing it.(所有引用基类的地方必须能透明地使用其子类的
对象。)

3.依赖倒置原则(Dependence Inversion Principle)

依赖倒置原则的原始定义是:
High level modules should not depend upon low level modules.Both should depend upon
abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.
翻译过来,包含三层含义:
● 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
● 抽象不应该依赖细节;
● 细节应该依赖抽象。

依赖倒置原则在Java语言中的表现就是:
● 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过
接口或抽象类产生的;
● 接口或抽象类不依赖于实现类;
● 实现类依赖接口或抽象类。

依赖的三种写法
1.构造函数传递依赖对象
2.Setter方法传递依赖对象
3.接口声明依赖对象

4.接口隔离原则(Interface Segregation Principle)

根据接口隔离原则拆分接口时,首先必须满足单一职责原则

5.迪米特法则(Law of Demeter)

也称为最少知识原则(Least Knowledge Principle,LKP),虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。

6.开闭原则(Open Closed Principle)
开闭原则的定义:
Software entities like classes,modules and functions should be open for extension but closed for modifications.(一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用内容,一个Java学习计划可以按照以下阶段进行安排: 第一阶段是学习Java基础知识,包括语法、面向对象编程等。可以通过书籍或在线视频进行学习。 第二阶段是学习JavaWeb,主要包括MySQL、HTML、CSS、JS、Tomcat、Servlet、Filter、Listener等内容。可以通过B站上的JavaWeb视频进行学习,并且可以尝试自己动手写一个JavaWeb项目或接一些外包项目来巩固所学知识。 第三阶段是学习Java框架,可以选择观看B站高淇老师的Java300集视频或阅读《Java核心技术卷Ⅰ》这本书来学习。在这个阶段,还可以重点学习集合、多线程和JVM等内容,因为在面试中经常会被问到。 最后,还可以学习容量规划和性能调优知识,熟练使用监控报警系统,并推荐阅读《深入理解Java虚拟机》这本书。此外,设计模式也是一个重要的知识点,可以从项目中学习,并有时间的话可以阅读《深入浅出设计模式》和《JDK里的设计模式》。 综上所述,一个Java学习计划可以按照基础知识、JavaWeb、Java框架、容量规划和性能调优、设计模式等阶段进行安排。 #### 引用[.reference_title] - *1* *2* [【2022Java学习计划】值得收藏的学习计划](https://blog.csdn.net/HeZhiYing_/article/details/124864208)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java学习计划](https://blog.csdn.net/nice_meng/article/details/86699361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值