摘要: Dependence Inversion Principle(DIP) 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务 阅读全文
posted @ 2017-02-27 16:27 孤独时光 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 1、里氏替换原则来源 继承优点: 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性; 提高代码的重用性; 子类可以形似父类,但又易于父类; 提高代码的可扩展性,实现父类的方法就可以“为所欲为”了; 提高产品或者项目的开放性; 继承缺点: 继承是侵入性的,只要是继承,就必须拥有父类的所有属 阅读全文
posted @ 2017-02-27 15:26 孤独时光 阅读(1556) 评论(0) 推荐(0) 编辑
摘要: Single Responsibility Principle(SRP):单一设计原则 它规定一个类只有一个发生变化的原因。如果多余一个导致类变更的原因,则违反了SRP。 问题来源: 分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样当修改T1时,不会使职责P2发生故障风险 阅读全文
posted @ 2017-02-27 13:08 孤独时光 阅读(629) 评论(0) 推荐(0) 编辑
摘要: Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”、“session”、“global session”三种web作用域;Spring还允许用户定制自己的作用域。 一、singleton:指“singleton”作用域的Bean只会在每个Spri 阅读全文
posted @ 2017-02-23 16:58 孤独时光 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 什么是循环依赖 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。如图3-5所示: 图3-5 循环引用 循环调 阅读全文
posted @ 2017-02-23 16:00 孤独时光 阅读(402) 评论(0) 推荐(0) 编辑
摘要: Bean依赖容器,那容器如何注入Bean的依赖资源,Spring IOC容器注入依赖资源主要有以下两种基本实现方式: setert注入:通过setter方法进行注入依赖;参考代码HelloTest2 构造器注入:就是容器实例化Bean时注入那些依赖,通过在Bean定义中指定构造器参数进行注入依赖,包 阅读全文
posted @ 2017-02-23 14:13 孤独时光 阅读(188) 评论(0) 推荐(0) 编辑
摘要: NIO和IO的区别,应用场景? NIO和IO的主要区别 面向流和面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。 它不能前后移动流中的数据。如果需要前后移动从流中读 阅读全文
posted @ 2017-02-21 17:16 孤独时光 阅读(147) 评论(0) 推荐(0) 编辑
摘要: Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 创建管道 通过Pipe.open()方法打开管道。例如: 向管道写数据 要向管道写数据,需要访问sink通道。 通过调用SinkChannel的w 阅读全文
posted @ 2017-02-21 16:39 孤独时光 阅读(137) 评论(0) 推荐(0) 编辑
摘要: DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: 接收数据 通过receive()方法从DatagramCha 阅读全文
posted @ 2017-02-21 16:34 孤独时光 阅读(261) 评论(0) 推荐(0) 编辑
摘要: ServerSocketChannel是一个可以监听进来的TCP连接的通道,就像标准IO的ServerSocket一样。ServerSocketChannel类在java.nio.channels包中。 打开 ServerSocketChannel 通过调用 ServerSocketChannel. 阅读全文
posted @ 2017-02-21 15:38 孤独时光 阅读(177) 评论(0) 推荐(0) 编辑