设计_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 设计 >>列表
· 基于netty的通讯协议的设计思考发布时间:2019-12-29
#一、dubbo协议的设计?先从业务开始,思考设计协议。##1.从rpc到remote?dubbo的目标是:一个接口方法的动态实现了远程方法调用,让调用者感觉与本地调用一样。既然是远程调用,涉及到用什么协议把调用数据发过去,以及接收方按这个协议解析出请求,进行处理后,用这个协议再返回结果。对于rpc要做的事情有:-调用方要做的事情有:产生一个包含调用数据的DubboInvoker,并且要用一个传输工具把这个发过去。-被调用方应该早就做好的事情:把自己所拥有的接口与实现... 查看全文
学习java设计模式有用吗?懂这六个原则,编程更轻松1.开闭原则(OpenClosePrinciple)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简单来说:就是为了使程序的扩展性好,易于维护和升级。2.接口隔离原则(InterfaceSegregationPrinciple)这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想... 查看全文
· Java设计模式的6大原则发布时间:2019-12-21
Java设计模式的6大原则1.开闭原则(OpenClosePrinciple)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简单来说:就是为了使程序的扩展性好,易于维护和升级。2.接口隔离原则(InterfaceSegregationPrinciple)这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便... 查看全文
· dubbo-go 中的 TPS Limit 设计与实现发布时间:2019-11-27
前言--ApacheDubbo是由阿里开源的一个RPC框架,除了基本的RPC功能以外,还提供了一整套的服务治理相关功能。目前它已经是Apache基金会下的顶级项目。而dubbo-go则是Dubbo的Go语言实现。最近在dubbo-go的todolist上发现,它还没有实现TPSLimit的模块,于是就抽空实现了这个部分。TPSlimit实际上就是限流,比如说限制一分钟内某个接口只能访问200次,超过这个次数,则会被拒绝服务。在Dubbo的Java版本上,只有一个实现... 查看全文
dubbo-go的前世今生--------------![1](https://yqfile.alicdn.com/3580d6f11c87dc60de9b2d7ff9ffba90f62cdcc7.png)dubbo-go是目前Dubbo多语言生态最火热的项目。dubbo-go最早的版本应该要追溯到2016年,由社区于雨同学编写dubbo-go的初版。当时很多东西没有现成的轮子,如Go语言没有像netty一样的基于事件的网络处理引擎、hessian2协议没有Go语言版本实现... 查看全文
· 第一章 - 并发系统设计准则发布时间:2019-09-19
并发系统中可能遇到的问题Datarace一个线程写入的数据可能被另一个线程所覆盖死锁如果两个或多个线程同时等待共享资源,而这些共享资源又必须由彼此来释放。以下四个条件同时满足时就会造成死锁:互斥性:死锁涉及的资源一次只允许一个线程使用持有资源并等待:一个线程持有一个互斥的资源,但同时等待另一个互斥的资源。等待的同时不释放已持有的资源没有剥夺资源权力:被占有的资源只能由占有它的线程释放循环等待:几个线程同时等待被其它线程占有的资源以下机制可以预防死锁发生:忽略死锁:这也是最通俗的机制... 查看全文
· Java之设计模式之 Observer 观察者发布时间:2019-07-08
java.util.Observer-观察者。实现该接口后,能够接收到来自被观察者因改动而发出的通知。update()方法,会被Observable调用。java.util.Observable-被观察者。setChanged()方法来设置change为truenotifyObservers()方法向观察者发送信息。下面的例子中,News对象是被两个Reader观察。packagecom.concretepage.util;importjava.util.Observable... 查看全文
Java设计模式2.结构型模式(4)外观模式外观模式(FacadePattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。1.外观模式packagecom.andrew.pattern0204.facade.model01;publicinterfaceShape{voiddraw();}packagecom.andrew.pattern0204.facade... 查看全文
Java设计模式1.创建型模式(4)工厂模式它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过new就可以完成创建的对象,无需使用工厂模式。工厂模式一般分为三类:1.简单工厂模式(SimpleFactory)2.工厂方法模式(FactoryMethod)3.抽象工厂模式(AbstractFactory)《设计模式... 查看全文
在说策略模式之前,我们先来分析一个需求。一、需求分析及实现过程某商场经常有促销活动,第一次是满200送80,第二次是所有商品打8折,第三次是所有商品打9折,第四次是满300送120等等。如果让你设计你怎么做?我们都在说面向对象编程,但是并不是类越多越好。分类的目的是为了抽象,将所有共性(相同的属性和功能)的对象抽象成一个类。我们先来找共性,打折类的需求我们可以抽象成一个需求,因为他们的共性就是折扣率和原价。满多少送多少类可以抽象成一个需求,因为他们的共性就是总价和扣除价。正常价是原价... 查看全文
我写的程序员面试系列文章Java面试系列-webapp文件夹和WebContent文件夹的区别?程序员面试系列:SpringMVC能响应HTTP请求的原因?Java程序员面试系列-什么是JavaMarkerInterface(标记接口)使用JDK自带的工具jstack找出造成运行程序死锁的原因编程面试题:编写一个会造成数据库死锁的应用设计模式(DesignPattern)中的桥接模式,有的朋友平时工作可能很少用到。桥接模式的核心在于将抽象部分和它的实现部分分离,使它们都可以独立的变化... 查看全文
面试问题:Java里的代理设计模式(ProxyDesignPattern)一共有几种实现方式?这个题目很像孔乙己问“茴香豆的茴字有哪几种写法?”所谓代理模式,是指客户端(Client)并不直接调用实际的对象(下图右下角的RealSubject),而是通过调用代理(Proxy),来间接的调用实际的对象。代理模式的使用场合,一般是由于客户端不想直接访问实际对象,或者访问实际的对象存在技术上的障碍,因而通过代理对象作为桥梁,来完成间接访问。实现方式一:静态代理开发一个接口IDeveloper... 查看全文
· Zz: java 线程池设计思想发布时间:2018-08-23
原地址:https://juejin.im/entry/59b232ee6fb9a0248d25139ajava线程池有哪些关键属性?corePoolSize,maximumPoolSize,workQueue,keepAliveTime,rejectedExecutionHandlercorePoolSize到maximumPoolSize之间的线程会被回收,当然corePoolSize的线程也可以通过设置而得到回收(allowCoreThreadTimeOut(true))... 查看全文
36套精品Java高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,大型分布式电商项目实战视频教程视频课程包含:36套Java精品高级课架构课包含:java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,架构设计,web安全,高并发,高性能,高可用,高可扩展,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,工作流,程序调优,负载均衡... 查看全文
摘要:2018年6月,《阿里巴巴Java开发手册》再次刷新代码规范认知,我们新增了16条设计规约!现免费开放下载,不可错过!《阿里巴巴Java开发手册》是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结,并经历了多次大规模一线实战检验及完善。这是阿里回馈给Java社区的一份礼物,希望能够帮助企业开发团队在Java开发上更高效、容错、有协作性,提高代码质量,降低项目维护成本... 查看全文
· 23种设计模式全解析发布时间:2018-05-28
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:二、设计模式的六大原则总原则:开闭原则... 查看全文
· 设计模式之责任链发布时间:2018-05-26
essage从第一个链开始判断和处理,如果不能处理就传给下一个链,每一个链用handler表示。所有的链继承自同一个父类,Handler使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合。将这些对象连成一个链,并按着这个链传递该请求,直到有一个对象处理他为止publicclassTest{publicstaticvoidmain(String[]args){Handlerh1=newBuyGoodsHandler();Handlerh2=newPayMoneyHandler()... 查看全文
转发一篇关于JAVA面向接口设计的文章传送门转发于知乎... 查看全文
· java 设计模式 32集发布时间:2018-04-04
同样是读者之前需要的,今天轮到了。说明:内容质量不做保证,小编并没有看过,有需要的自行下载查看。32全集图今日关键词(公众号后台直接回复即可):设计模式32资料分享scrapy爬虫,学习资料分享oracle教程Java全套视频教程数据结构(java版)Matlab+caffe资料分享netty+云计算,众筹目标等你来定!... 查看全文
· 数据库命名设计规范发布时间:2018-03-30
1.数据库涉及字符规范采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外)。注意事项:1)以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@)。2)数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.。3)小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突。4)保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性... 查看全文