代理模式:为某个对象提供一种代理以控制对这个对象的访问。(在某些情况下,一个对象不适合或者不能直接引用另一个对象,而“代理对象”可以在客户端和目标对象之间起到中介的作用) 代理模式作用:1. 隐藏被代理类的具体实现; 2.实现客户端与被代理类的解耦,在不改变被代理类代码的情况下添加一些额外(日志、权 ...
分类:
其他好文 时间:
2020-10-29 09:40:17
阅读次数:
13
RPC和消息队列 1 消息队列 1 两个服务调用:restful(http协议),rpc(远程过程调用) 2 rpc:远程过程调用 -gRPC:谷歌出的,跨语言 3 不管用rpc或者restful来通信,涉及到同步,异步 4 消息队列解决的问题 -应用解耦 -流量消峰 -消息分发(发布订阅:观察者模 ...
分类:
其他好文 时间:
2020-10-22 22:15:29
阅读次数:
23
线程通信 为什么要进行线程通信 把一个大的任务放到主线程的话,由于顺序执行,会严重影响程序执行的效率。为了提高效率和并发度,可以将任务解耦为多个线程执行,比如一个线程接收数据,一个线程处理数据,这个时候,线程间就会出现交互,也就是线程通信。 生产者消费者模型 线程通信的关键应用场景就是生产者消费者问 ...
分类:
编程语言 时间:
2020-10-21 20:23:26
阅读次数:
23
?Django模型层 一 ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开 ...
分类:
其他好文 时间:
2020-10-19 22:40:14
阅读次数:
20
前提 在某一次用户标签服务中大量用到异步流程,使用了RabbitMQ进行解耦。其中,为了提高消费者的处理效率针对了不同节点任务的消费者线程数和prefetch_count参数都做了调整和测试,得到一个相对合理的组合。这里深入分析一下prefetch_count参数在RabbitMQ中的作用。 pre ...
分类:
其他好文 时间:
2020-10-18 17:00:49
阅读次数:
69
大家好,欢迎来到设计模式专题,我们的主旨是介绍一些有趣好玩的设计模式。 今天我们介绍的设计模式叫做命令模式(command),在这个模式下,我们可以实现do和undo的解耦,让使用方不用关心内部的实现细节。 command模式 这个模式我们在日常当中经常使用,举一个很简单的例子,比如说我们发布代码。 ...
分类:
其他好文 时间:
2020-10-18 16:14:47
阅读次数:
25
在程序员编写代码时候其实需要考虑到很多问题:可用性(完整的达到业务目的)健壮性(程序在各种环境各种操作都能保证正常的运行)复用性(代码能够被别的模块调用来达到不同的目的,这里一定程度上有解耦的思想)可扩展性(代码设计足够灵活,能够适应尽可能多的业务)性能内存占用(在我理解里性能与内存占用往往两难全,性能的提升,往往代表内存的更多占用。比如动态数组ArrayList为了避免频繁的扩容,会进行1.5倍
分类:
编程语言 时间:
2020-10-14 20:49:30
阅读次数:
47
面向接口编程 大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面向对象的系统中,系统的各种功能是由 ...
分类:
其他好文 时间:
2020-10-13 17:32:45
阅读次数:
25
C#简单工厂模式模型,建立一个模型,构建我们的实际工程,项目。所有面向对象的编程都是在我们生活中存在的,从词义的解释就是我们生活中的工厂就是负责生产产品的,而到开发中对应的就是NEW不同的对象,该模式主要解决的问题就是解决创建对象与该类的解耦。设计原则中经常说的类单一职责、封装性都有体现。学习框架的目的:为了适应业务的复杂度提高,给业务进行解耦操作。面向对象目标:高内聚、低耦合、可重用。编程中的简
IOC控制反转,也成为依赖注入(DI),是一个定义对象依赖的过程,对象只和 构造参数,工厂方法参数,对象实例属性或工厂方法返回相关。容器在创建这些Bean的时候注入这些依赖。这个过程是一个反向的过程,所以命名为依赖反转,对象实例的创建由其提供的构造方法或服务定位机制来实现。这样做最大的好处就是解耦。 ...
分类:
编程语言 时间:
2020-10-13 17:01:59
阅读次数:
25