定义:
以对象为载体,以事件响应为交互原则,以声明式与命令式互补为编程原则的一种设计方案。响应式编程的哲学:区分一个物体的条件不是该物体的属性和动作,而是该物体对于不同事件的反应。
原则:
1:对象的引用关系
为了避免面向对象模式下 各个对象之间复杂的关系,需要将对象之间的关系 做一些取舍,这样可以避免多个对象相互引用导致的数据流混乱问题,对象之间的关系如下:
1:对象之间的引用关系仅限父子关系。
2:优先使用继承而不是属性配置来实现扩展。
2:对象之间的数据传递
之所以对象之间的引用关系混乱是因为 面向对象试图为每一个数据传递都搭建坚实的桥梁,然而却导致 立交桥太多造成的蜘蛛网问题,改进如下:
1:不同对象之间的数据传递统一采用中介者模式
2:每个类都必须实现中介者模式,方便类内部不同对象通信(即实现中介者模式)
3:子类不可以跨越父类监听外部事件
3:代码微处理
通过函数式编程实现程序的可置换性和提高代码的纯度,同时辅以命令式代码 提高编程灵活性。
设计图如下:
如图:
其中圆角矩形,正方形和圆形都是对象,他们具有嵌套关系,同时我们可以看到两个矩形,这是一个父元素下的两个子元素,这两个子元素之间,如果希望希望完成信息交流,则必须在父类中的中介者上进行沟通。圆形子元素的互相沟通同理。
将对象的交互简化为对象单纯的发出和响应事件,这样做的好处显而易见,1:不用担心异步问题 2:模块 对象之间的耦合度大大降低,这种设计模式大到系统设计,小的单个模块 单个类的设计都遵循这种规范。