原文地址:http://www.codeproject.com/KB/cpp/applyingpatterns2.aspx 作者:An 'OOP' Madhusudanan 译者:赖勇浩(http://blog.csdn.net/lanphaday ) 解决方案架构师:你的进度怎么样? 愚蠢的开发者:是的,我觉得我学会了如何应用 Observer 模式去解决所有问题 解决方案架构师:一个模式解决所有问题? 愚蠢的开发者:啊,还不够么? 介绍 关于本文 本文是这个系列的第二篇文章,在阅读本文之前,…
原文地址: http://www.codeproject.com/KB/architecture/applyingpatterns.aspx 作者:An 'OOP' Madhusudanan 译者:赖勇浩(http://blog.csdn.net/lanphaday ) 译者说:这是一篇非常好的文章,有非常棒的例子,非常棒的文笔,非常棒的代码(VB.net编写的,但你肯定读得懂),如果你还不懂设计模式,那它肯定是最适合你的 DPs 文章之一. 第一部分 解决方案架构师:你可以尝试使用模式 愚蠢的…
阅读目录 前言 解决数据一致性的方案 回到DDD 设计 实现 结语 一.前言 之前的十一篇把用户购买商品并提交订单整个流程上的中间环节都过了一遍.现在来到了这最后一个环节,提交订单.单从业务上看,这个动作的背后包含了多个业务操作,根据用户填写的订单信息生成订单.扣除使用的余额和积分.使用选择的礼券等等.其中涉及到多个上下文的操作,包括新引入的订单上下文,那么如何同时与多个上下文进行数据的写入操作是本篇主要想讨论的问题. 二.解决数据一致性的方案 分布式系统中的多个子系统之间的同时写入问题,也就是…
本文由@呆代待殆原创,转载请注明出处. 写在前面:所谓设计原则并不是一定要遵守的法则,只是一种建议,因为保持这些原则本身会有一定代价,若是这些代价超过了带来的好处就得不偿失了,所以一切还是以简单为准. 原则一:分离变与不变的部分. 定义:找出代码中会发生变化的部分,并将其和保持不变的部分分离. 作用:提升可维护性.将会变化的部分分离后,在以后的修改过程中就不会影响到其他不变的部分. 原则二:面向接口编程. 定义:面向接口编程,而不是面向某个实现. 作用:降低耦合.这里的接口有多个含义,并不仅仅只…
1.单一职责原则:每个类都只有一个职责,修改一个类的理由只有一个 2.开放-封闭远程(OCP):开放是指可拓展性好,封闭是指一旦一个类写好了,就尽量不要修改里面的代码,通过拓展(继承,重写等)来使旧的类满足新的需求,而不是修改一个类里面的代码. 3.依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象:抽象不应该依赖细节,细节应该依赖抽象.底层模块例如很多工具类,例如专门用于管理sql连接的类,管理文件,管理socket连接的类,高层类指具体实现需求的类.高层类和底层类都不应该相互依赖,…
6大原则: 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 一.单一职责原则 定义:应该有且仅有一个原因引起类的变更 带来的好处: 类的复杂性降低,实现什么职责有清晰明确的定义 可读性提高 可维护性提高 变更引起的风险降低 对于单一职责原则,建议接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化. 二.里氏替换原则 继承的优点: 代码共享,减少创建类的工作量,子类拥有父类的属性和方法 提供代码重用性 提供代码扩展性 提供产品或项目开放性 继承缺点: 继承是…
1.数据库 Redis服务器一般包含多个db,默认16个. 切换数据库 每个redis客户端都有自己的目标数据库,默认为0,可以通过select 1,切换数据库. 设置键的生存周期和过期时间 PTTL key 获取key的有效毫秒数 TTL key 获取key的有效时间(单位:秒) PERSIST key 移除key的过期时间 EXPIREAT key timestamp 设置一个UNIX时间戳的过期时间 PEXPIRE key milliseconds 设置一个key的过期的毫秒数 PEXPI…
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证保持一个长连接也为推送消息提供 ======这段是一个以前同事给我的JAVA Socket验证机制的例子===========socket通信一般是找不到头这些的,要自定义封装通信消息类如开源框架netty,消息进出都有自定义加密和选择性压缩的socket不想http一样能找到某个方法,他就监听ip…
第二十章.适配器模式 适配器模式是结构型设计模式之中的一个,它在我们的开发中使用率极高,比方ListView.GridView以及RecyclerView都须要使用Adapter. 1.定义 适配器模式把一个类的接口变换成client所期待的还有一种接口,从而使原本因接口不匹配无法在一起工作的两个类能够在一起工作. 2.使用场景 (1)系统须要使用现有的类.但此类的接口不符合系统的须要.即接口不兼容. (2)想要建立一个能够反复使用的类.用于与一些彼此之间没有太大关联的一些类,包含一些可能在将来…
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通常在600像素以下:PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素.同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事. 很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone…