架构师训练营第二周学习总结

用户头像
张明森
关注
发布于: 2020 年 06 月 14 日

1.面向对象

1).面向对象分析是指,将客观世界,即工作中面对的业务领域进行对象分析

2).面向对象编程三大特性:封装、继承、多态;利用面向对象的特性进行编程

多态整理如下:

2.框架

1).框架:对某一类结构方案的可复用的设计和实现,比如:Tomcat,Spring,MyBatis等

可以简化工程师的工作,提高效率;大家使用你的框架使你成为最核心的那个人

架构师应该关注框架:框架选型、开发、维护

2).框架是实现架构的手段,是架构落地的保证。

3).框架VS工具:谁调用谁;框架调用我的代码,我的代码调用工具,比如:junit 框架、log4j 工具。

3.电话拨号案例

对象:所有名词可能为对象。

面向过程的设计

类图



合作图(协作图)

对象、消息、序号

坏味道

僵硬、脆弱、不可移植

改进1:Button实现继承

改进2:策略模式

聚合用来表示集体与个体之间的关联关系

改进3:适配器模式

改进4:观察者模式

4.软件设计原则

软件设计臭味

1).软件设计最终目的:高内聚,低耦合

易扩展、更强壮、可移植、更简单

2).坏味道:僵化、脆弱、牢固性、粘滞性、不必要的复杂性、不必要的重复、晦涩性

例子:读入字符并打印



5.设计模式原则

1).开/闭原则(OCP):对于扩展开发、对于更改封闭。

2).依赖倒置原则(DIP):高层模块不能依赖低层模块,而是大家都依赖于抽象

3).里氏替换原则(LSP)

4).单一职责原则(SRP):

5).接口分离原则(ISP)

6.设计模式记录

单例模式

1. 策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,使每个算法可以相互替代,使算法本身和使用算法的客户端分割开来,相互独立。

其中策略模式



  • Context封装角色它也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。不依赖于底层的模块,只去按照抽象接口去实现自己的方法。这就是依赖倒置

  • Strategy抽象策略角色策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性

  • ConcreteStrategy具体策略角色实现抽象策略中的操作,该类含有具体的算法

2.适配器模式

Target目标角色:把其他类转换为我们的期望接口;

Adaptee源角色:要被转换的类或对象

Adapter适配器角色:把源角色转换为目标角色,通过继承或是类关联的方式

3.观察者模式

观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新

Subject被观察者:定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者

Observer观察者:观察者接收到消息后,即进行update(更新方法)操作,对接收到的信息进行处理

ConcreteSubject:具体的被观察者定义被观察者自己的业务逻辑,同时定义对哪些事件进行通知。ConcreteObserver:具体的观察者每个观察在接收到消息后的处理反应是不同,各个观察者有自己的处理逻辑。



用户头像

张明森

关注

还未添加个人签名 2017.10.16 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第二周学习总结