
设计模式
文章平均质量分 50
淘气的高老板
污,孤傲,高冷,薄情,悲天悯人的高老板
展开
-
是用wireshark抓包没权限
是用wireshark抓包没权限,下载bpf后仍然提示没有权限原创 2022-08-07 13:37:44 · 418 阅读 · 0 评论 -
远程调用rpc的时候 远程的异常如何处理
远程调用rpc的时候 远程的异常如何处理?返回 错误码+错误描述 这个和RPC协议定义有关系了,一般RPC协议会有错误码的,比如0是正常,其他是错误码,并且附带errMsg 如果 远程rpc是层层调用的,就层层返回,可以加入分布式 追踪系统RPC timeout原创 2017-07-17 00:03:50 · 10422 阅读 · 1 评论 -
java 多线程规范(1)常用的多线程的场景
一,线程池的作用线程池的作用:线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开原创 2017-07-18 21:48:43 · 1012 阅读 · 2 评论 -
Spring boot(18) spring mvc请求参数的校验和处理规范
一.参数校验1.需要参数校验的场景(1)调用频次低的方法。(2)执行时间开销很大的方法。(3)需要提高稳定性和可用性的方法。(4)对外提供的开放接口,api、rpc、http等。(5)敏感权限的入口。2.不需要校验参数的场景(1)极有可能被循环调用的方法。(2)底层调用频度比较高的方法。一般有错误提前就暴露了。(3)被声明成私有方法。能够保证传入的参数提前做过检查。二,参数的传入http是个文本协议原创 2017-06-22 17:18:26 · 2751 阅读 · 0 评论 -
设计模式六大原则(5):开放封闭原则(OCP)
什么是开闭原则? 定义:是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。 开闭原则主要体现在两个方面: 1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。2、对修改封闭,意味着类一旦设计完成,就可以独立其工作,而不要对类尽任何修改。怎么使用开闭原则? 实现开放封闭的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固转载 2017-06-01 17:17:36 · 425 阅读 · 0 评论 -
设计模式六大原则(4):接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:转载 2015-04-07 06:48:58 · 562 阅读 · 0 评论 -
javaAPI深入理解(2)Collection,List的设计,ListIterator与Iterator,RandomAccess,List排序、逆序以及其他
我们看一下RandomAccess接口的声明 之前我们知道List通过Collection继承了Iterable接口 public interface Collection extends Iterable public interface List extends Collection 1 Iterator模式为Collection提供了遍历和删除我们看一下Iterable的方法列表publ原创 2017-05-09 15:10:34 · 1123 阅读 · 0 评论 -
设计模式(1)Iterator模式
设计模式(1)Iterator模式编辑文章 Iterator是java集合框架的成员,使用了设计模式中的Iterator模式我们从API中将这种方式提炼出来,并且了解List的设计Iterator核心设计1 定义接口Iteratorpublic interface Iterator<E> { boolean hasNext(); E next();}Iterable 用来给原创 2017-03-31 11:19:26 · 459 阅读 · 0 评论 -
java基础,单例总结
三,记录式单例/** * 记录式单例 */public class SingleTon3 { private static Map map = new HashMap(); static { SingleTon3 single = new SingleTon3(); map.put(single.getClass().getName(), single); } priv原创 2015-09-06 10:57:13 · 555 阅读 · 0 评论 -
沈洵:分布式事务原理与实践之多机事务
分布式事务与单机事务,相同与不同分布式事务的主要难题传统数据库的分布式事务新兴互联网行业的分布式事务尝试google spanner赏析阿里的分布式事务模型DRDS/TDDL实战目标完整的事务支持像传统单机事务一样的操作方式可按需无限扩展事务最重要的一件事就是易用本身。容易理解的模型往往性能都不好,性能好的模型往往不容原创 2017-02-01 18:12:43 · 1790 阅读 · 0 评论 -
沈洵:分布式事务原理与实践之单机事务
事务简介处理事务的常见思路事务处理的常见问题分布式事务面临的问题传统分布式事务模型赏析Google Spanner的创新与代价DRDS/TDDL的实践什么事事务看起来很简单,就三个命令bgin ccommitrollback如果没有对这个的原理了解的化,不会取舍事务的简介同步控制事务的核心是锁与并发优势:方便理解劣原创 2017-01-05 17:26:45 · 2422 阅读 · 0 评论 -
Redis内部数据结构总结(5)skiplist
redis的sorted set 底层是由skiplist,dict,ziplist来实现的。在reids.config中有两个配置zset-max-ziplist-entries 128zset-max-ziplist-value 64redis的内部结构skiplist采用的跳跃表,并对其做了一定改动。哈希表,平衡树和跳跃表都可以用来查询。其中平衡树和跳跃表使有序的原创 2016-11-02 00:02:05 · 1130 阅读 · 0 评论 -
回调以及异步调用
来源出处:点击打开链接例子1首先看一段代码:模板方式:public abstract class B{ public void execute(){ getConnection(); doCRUD(); releaseConnection(); }原创 2015-04-14 21:24:41 · 1071 阅读 · 0 评论 -
Java 简简单单理解观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。原创 2014-05-13 18:26:11 · 755 阅读 · 0 评论 -
设计模式六大原则(1):单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T转载 2015-04-06 22:54:15 · 632 阅读 · 0 评论 -
设计模式六大原则(2):里氏替换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子转载 2015-04-06 22:56:44 · 601 阅读 · 0 评论 -
设计模式六大原则(3):依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接转载 2015-04-06 23:06:35 · 589 阅读 · 0 评论