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

发布于: 2020 年 06 月 20 日

第一节课

1.设计原则回顾

开闭原则、依赖倒置原则、里氏替换原则、单一职责原则、接口隔离原则

开闭原则

1).对修改关闭,对扩展开放;通过抽象实现

2).策略模式、适配器模式、观察者模式

依赖倒置原则

1).高底层之间不互相依赖;底层实现高层定义的接口;

2).框架的开发;不用调用框架,实现框架提供的接口,由框架来调用。

里氏替换原则

1).类不是为了继承而设计的就不要去继承它

单一职责原则

有一个原因导致类变化

接口隔离原则

客户端不应该依赖它不需要的接口

2.案例:Flower框架

反应式编程;AKKA;Actor;异步;消息驱动

开发人员实现Flower定义的接口规范及编写流程编排配置;

3.面向对象的设计模式

目标:强内聚、低耦合

模式:可重复使用的解决方案;组成部分:名字、待解问题、解决方案、结论

1.排序问题:简单工厂

简单工厂:

无参数方法、传入对象类型参数、配置文件

2.单例模式

两种实现方式:

public class SingleTon1 {
private static SingleTon1 instance=new SingleTon1();
private SingleTon1(){}
public static SingleTon1 getInstance(){
return instance;
}
}

public class SingleTon2 {
private static SingleTon2 instance=null;
private SingleTon2(){}
public static synchronized SingleTon2 getInstance(){
if(instance==null){
instance=new SingleTon2();
}
return instance;
}
}

3.适配器模式

类的适配:通过继承实现

对象的适配:通过组合关联实现

4.答疑

1.要争取做能提高自己的工作;CRUD不能提高自己;写框架能提高自己;架构:用技术框架来控制流程;

2.如何高效学习框架?自己写一个简单的框架

3.给谁写代码?产品(业务代码,CRUD)、给工程师写代码(工具、框架)

第二节课

1.Junit中的设计模式

TestCase

public void runBare() throws Throwable {
Throwable exception= null;
setUp();
try {
runTest();
} catch (Throwable running) {
exception= running;
}
finally {
try {
tearDown();
} catch (Throwable tearingDown) {
if (exception == null) exception= tearingDown;
}
}
if (exception != null) throw exception;
}
protected void setUp() throws Exception {
}
protected void tearDown() throws Exception {
}

模板方法模式:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤;抽象方法、钩子方法、具体方法;

Servlet中的模板方法模式:

组合模式:部分-整体模式;树状结构;叶子对象、树枝对象

装饰器模式:动态地给一个对象添加一些额外的职责;相比继承可以随意组装,是动态的;

应用:Java IO类库;servlet中;同步化装饰器;

讲解在junit、servlet等框架中是如何使用设计模式的,感受框架中是如何运用设计模式的

2.Spring设计模式

1.DI&IOC

2.Spring中的单例

3.Spring MVC模式

3.SQL转换器案例

庞大的不易维护的单个类文件->单一职责原则、装饰器模式

总结:

主要学习了解设计原则及主要设计模式,以及常用框架中是如何运用设计模式的,体验一下使用设计模式的奇妙之处。

发布于: 2020 年 06 月 20 日 阅读数: 21
用户头像

bin

关注

还未添加个人签名 2017.10.16 加入

还未添加个人简介

评论

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