随笔分类 - 架构 / 设计模式
摘要:RPC调用和HTTP调用的区别 标签(空格分隔): 分布式 1. OSI七层网络模型 在说RPC和HTTP的区别之前,需要了解一下计网基础的OSI七层网络结构模型。 1. 应用层:定义了用户在网络中进行通信和传输数据的接口,一般情况下应用都是直接和应用层进行交互的。 2. 表示层:定义不同系统中数据
阅读全文
摘要:观察者模式 标签(空格分隔): 设计模式 观察者模式: 当对象之间存在一对多的关系的时候, 则使用观察者模式. 比如当一个对象呗修改的时候, 则会自动通知他的依赖对象, 观察者模式属于行为模式 优点 观察者模式实现了动态联动 观察者模式实现了广播通信 缺点 如一个主题被大量观察者观察, 则通知所有的
阅读全文
摘要:Gang Of Four的23中设计模式 标签(空格分隔): 设计模式 1. 根据目的来进行划分 根据目的进行划分可以分为 创建型模式 , 结构型模式 和 行为模式 三种. 1.1 创建型模式 怎样创建对象, 主要特点是 将对象的创建和使用分离 , GoF中提供了单例, 原型, 工厂方法, 抽象工厂
阅读全文
摘要:```java
/** * 适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口,adapter模式 * 使得原本由于接口不兼容,而不能一起工作的那些类可以一起工作.对修改关闭,对拓展开放. * 不兼容的话 就加一个转接头. */
public class SixNine { /** * 可以看到work(powerB); 是报错的, powerA和powerB...
阅读全文
摘要:```java import java.util.Map; import java.util.Random; import java.util.concurrent.ConcurrentHashMap; /** * 享元模式: 面向对象技术可以很好的解决一些灵活性或可扩展性问题, 但是在很多情况下需要在系统中增加类和对象的个数, 但是当这些完全一样的对象数量太多的时候, 会导致运行的代价过高,...
阅读全文
摘要:设计模式 标签(空格分隔): 设计模式 设计模式最初是出现在建筑领域的设计中, 之后延伸到软件设计领域. 设计模式的概念和意义 有关软件设计模式的定义有很多, 有些从模式的特点来说明, 有些从模式的作用来说明. 1. 软件设计模式的概念 软件设计模式(Software Design Pattern)
阅读全文
摘要:Java内存模型(JMM) 标签(空格分隔): Java 架构 线程/进程 JMM 本身是一种抽象的概念并不真实存在, 它描述的是一组规则或规范, 通过这组规范定义了程序中各个变量(包括实例字段, 静态字段和构成数组对象的元素)的访问方式. JMM关于同步的规定. 1. 线程解锁之前, 必须把共享变
阅读全文
摘要:深克隆和浅克隆 标签(空格分隔): 设计模式 原型模式: 将一个对象作为原型, 通过对其进行复制而克隆出多个和原型类似的新实例. 浅克隆 浅克隆: 被复制对象的所有基本变量都含有和原来变量完全相同的值, 而其他所有的引用对象任然指向原来的对象. 换言之, 浅克隆仅仅复制锁考虑的对象, 而不复制它所引
阅读全文
摘要:MVC和三层架构 标签(空格分隔): 架构 设计模式 三层架构 三层架构指的是: 视图层(View),服务层(Service)和持久层(DAO). 他们分别负责不同的功能. 单纯就是指后台的设计架构 这种架构模式是从微软来的, 微软提倡这种架构模式并且在 零几年的时候给了一个宠物商店的Demo 用于
阅读全文
摘要:使用懒汉式加载。 最终可以做到 线程安全,延迟加载,效率高的特点。 volatile 简介 package oneDay; /** * 保证一个类仅有一个实例,并提供一个访问它的全局访问点 * 1:构造方法私有化 * 2:声明一个本类对象 * 3:给外部提供一个静态方法获取对象实例 * <p> *
阅读全文
摘要:java import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import j
阅读全文

浙公网安备 33010602011771号