工厂模式(下):如何设计实现一个DependencyInjection框架?
45 | 工厂模式(下):如何设计实现一个Dependency Injection框架? 在上一节课我们讲到,当创建对象是一个“大工程”的时候,我们一般会选择使用工厂模式,来封装对象复杂的创建过程,将对象的创建和使用分离,让代码更加清晰。那何为“大工程”呢?上一节课中我们讲了两种情况,一种是创建过程涉及复杂的if-else分支判断,另一种是对象创建需要组装多个其他类对象或者需要复杂的初始化过程。 ...
45 | 工厂模式(下):如何设计实现一个Dependency Injection框架? 在上一节课我们讲到,当创建对象是一个“大工程”的时候,我们一般会选择使用工厂模式,来封装对象复杂的创建过程,将对象的创建和使用分离,让代码更加清晰。那何为“大工程”呢?上一节课中我们讲了两种情况,一种是创建过程涉及复杂的if-else分支判断,另一种是对象创建需要组装多个其他类对象或者需要复杂的初始化过程。 ...
56 | 观察者模式(上):详解各种应用场景下观察者模式的不同实现方式 我们常把23种经典的设计模式分为三类:创建型、结构型、行为型。前面我们已经学习了创建型和结构型,从今天起,我们开始学习行为型设计模式。我们知道,创建型设计模式主要解决“对象的创建”问题,结构型设计模式主要解决“类或对象的组合或组装”问题,那行为型设计模式主要解决的就是“类或对象之间的交互”问题。 ...
57 | 观察者模式(下):如何实现一个异步非阻塞的EventBus框架? 上一节课中,我们学习了观察者模式的原理、实现、应用场景,重点介绍了不同应用场景下,几种不同的实现方式,包括:同步阻塞、异步非阻塞、进程内、进程间的实现方式。 ...
我相信,很多程序员都已经意识到基础知识的重要性,觉得要夯实基础,才能走得更远,但同时对于如何将基础知识转化成开发“生产力”仍然有些疑惑。所以,你可能看了很多基础的书籍,比如操作系统、组成原理、编译原理等,但还是觉得很迷茫,觉得在开发中用不上,起码在平时的CRUD业务开发中用不上。 ...
46 | 建造者模式:详解构造函数、set方法、建造者模式三种对象创建方式 上两节课中,我们学习了工厂模式,讲了工厂模式的应用场景,并带你实现了一个简单的DI容器。今天,我们再来学习另外一个比较常用的创建型设计模式,Builder模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式。 ...