摘要: 之前的模板方法虽然解决了代码多余的问题,但是缺点也是显而易见的,我只能被迫接收所有继承的,所以有了这第二个模式 装饰者模式 还是之前的业务逻辑,现在我可以这么写 public interface Command(){ public void excute(); } //一个类来执行输出日志 publ 阅读全文
posted @ 2020-04-23 11:54 Vinlen 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 如果现在有一个电商网站,用户需要购买购买一件商品,我们需要在用户购买商品前做一些其他的事情,比如记录日志,进行性能统计,权限检查等等。按照面向对象的设计模式,应该把常用的方法抽出来在业务逻辑前后进行调用。这样虽然也可以完成逻辑,但是那些与日志,安全,事务,性能统计的相关代码快把真正的代码淹没了,不仅 阅读全文
posted @ 2020-04-23 11:30 Vinlen 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 先看名字,乐观锁和悲观锁,乐观的人会假设每一次的操作都是线程安全的,只有最后返回数据的时候才校验一下。悲观的人觉得每一次的操作都是不安全的,一次只能一个人进行操作。 有这样一个方法 public class Sequence(){ private int value; public synchron 阅读全文
posted @ 2020-04-23 10:57 Vinlen 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 假设有两个账户A和B在独立的数据库上,如果A要向B转账100元,在一致性要求下,A账户-100,B账户+100,这两个操作要么全部做完,要么全部不做。但是在互联网的环境下(高并发),这是不大容易做到的。所以后来有了一个消息队列 还是之前的例子,A的账户转100出来,需要在数据库1发起一个事务,从A的 阅读全文
posted @ 2020-04-23 09:23 Vinlen 阅读(112) 评论(0) 推荐(0) 编辑
摘要: TCP传输协议是为了在不可靠的网络上提供可靠的端对端字节流传输而专门设计的协议。毕竟网络这么大,我向你发送数据的时候不知道你在不在,你向我返回数据的时候我接收功能不一定没问题 打个比方,你如果要上远方的朋友家玩,你肯定需要事先询问他在不在家,现实是通过电话/微信,而网络传输则是通过三次握手 第一次 阅读全文
posted @ 2020-04-23 08:49 Vinlen 阅读(176) 评论(0) 推荐(0) 编辑