设计模式学习系列笔记之builder模式.
构建者模式解决的我们在构建某个对象或者说业务场景的时候,流程都是固定的,只是具体的实现方式有变化.
就拿我们培训应届生这件事情来说.培训应届生分为以下几个部分
1 应届生写日报
studyNewKnowledge()
getSomeProblems()
2 导师对日报进行点评
indicateTheProblems()
giveSomeAdviceAndSolutio
ns()
3 对学员文件进行解答和评分
answerTheQuestion()
giveTheScore()
对于组织培训方来说(比如丫丫姐吧),他们只关注的是这些流程应届生和导师们是否在认真在做,但是对于不同类型的学员和导师具体的任务都是不一样的.
比如FE studyNewKnowledge()的实现就是fe相关的,比如jquery,fekit,angularJS等
dev同学studyNewKnowledge()的实现就是java&guava,mysql,linux等
QA同学 也类似.
对于培训方来说,他们就不断的builderStudents(),然后调用他们的这些学习方法等.
以及builder更多的导师,干导师应该干的事情.
这是我对于这个builder模式的理解,从qpx系统中来说的话,springBatch中配置的各个job.step,reader,writer已经构建ok了
只是需要我们去组织构建这些对象,把主流程规定好,然后把各个实现的类注入到spring配置文件中即可.
构建完成整个job后执行丢给joblauncher去execute就ok了.
设计模式学习系列笔记之适配器模式(Java Design Patterns Adapter)
这个模式可以说相对比较简单和容易理解吧.适配器是个中间人.
比如java IO中的 BufferedInputStream 是字节流到字符流的媒介.
对于我们将字节流当成字符流来操作时非常方便.
因此当我们后期程序代码中出现过
SomeMethod 接收的参数是A, 但是我们能提供的是B,因此我们我们需要找一个转换器进行转换即可.
这个思想其实跟我们生活中的很多场景是类似的.这不不禁让我想到一句话,编码问题最终是哲学问题.需要我们善于发现生活中的美好.