Design Pattern
文章平均质量分 92
chaocai2004
Mobvista集团VP及首席架构师
前亚马逊中国 首席架构师
展开
-
高效并发模式 -- Half-Sync/Half-Async vs. Leader-Follower
并发是提高系统吞吐量的关键手段,但是构建高性能的并发系统并非易事。通过利用经典的模式可以使我们站在巨人的肩上,Half-Sync/Half-Async和Leader-Follower正是两种最经典的并发模式。在实际中模式学习的难点往往在于好像看懂了,但是却总不能在正确的场景中使用。为了使大家能更好的理解和在实际中正确的使用这两种模式,下面将通过构建高性能网络通信的场景(Java NIO)来对模...原创 2020-02-22 15:07:14 · 552 阅读 · 0 评论 -
通过Kubernetes架构来重温一些经典理念
除了利用kubernetes来高效的管理我们的集群,通过分析和学习Kubernetes的内部架构,也会让我们重温很多架构设计的经典理念并看到他们在实际中的合理运用,为我们的架构设计工作带来启迪。原创 2019-08-30 21:43:20 · 1911 阅读 · 0 评论 -
Moving to “Micro-service” and “Serverless”
本文是作者在AWS Summit 2017中的演讲总结,是亚马逊开发团队对于Microservice及Serverless架构的真实经验分享。原创 2017-08-24 09:55:54 · 555 阅读 · 1 评论 -
在Amazon Tech(o) 上的主题演讲--软件致简之道
来自资深软件架构师的经验和感悟分享。演讲者蔡超拥有十多年软件开发经验,曾任天融信安全管平台架构师,HP软件架构师等,现为亚马逊中国资深工程师.原创 2015-01-31 09:05:58 · 1323 阅读 · 0 评论 -
弹性编程原则
1 SRPSRP(Single Responsible Principle), 单一职责原则,这是面对的最基本原则,也是实现弹性设计的最基本原则。每个类或接口定义应该只包含一种明确的职责,同时仅有一种原因会导致这种定义的修改。一个复杂的类或接口的定义包含多个责任,很容易使你的设计失去弹性,很多因素都会导致这个类或接口的变更,由于它含有多种职责,这就意味着它是多种服务的提供者,会有多种依赖于原创 2009-09-14 20:38:00 · 1179 阅读 · 0 评论 -
Double Dispatch模式
本文介绍了常见面向对象语言(Java,C#等)OverLoad对于运行时执行的方法邦定的局限,并且如何通过Double Dispatch来实现运行时行为邦定。 1 根据对象来选择行为问题 public interface Event {} public class BlueEvent implements Event { } public class R原创 2009-02-19 21:04:00 · 1642 阅读 · 0 评论 -
OSGi实现动态特性的关键模式
OSGi平台为我们提供了强大的动态特性,通过分析我们可以发现这些动态特性的实现与很多常用的设计模式相关,了解其中原理直接将这些模式用于我们的应用开发,也可以有效地实现动态特性。1 Broker模式:实现服务提供者与服务使用者的分离及解耦。Bundle通过所能提供的服务将自己注册至Framework,调用者通过Framework查找所需的服务。Bundle的服务注册是实现服务自动发现的基础。 2原创 2008-10-15 21:48:00 · 1075 阅读 · 0 评论 -
DAO模式最佳实践
DAO看似是一个非常简单的模式,但这个模式却十分重要,它可以帮助我们实现持久化逻辑和业务逻辑的分离;它可以帮助我们实现对多种持久化实现的支持。同时,DAO模式并没有看起来这么简单,要真正发挥它的威力需注意的方面很多,而这些方面常常被大家忽略,以下是本人总结的一些最佳实践。1 不要在DAO上控制事务的边界应该在Façade层控制事务的边界,这样可以提高DAO的复用性,使它适用于不同原创 2008-06-24 20:28:00 · 1375 阅读 · 0 评论 -
分层模式中的常见问题
引言分层结构是目前复杂应用系统开发时普遍使用的模式,软件中层之间的依赖关系约束是比较宽松的,并不要求上层仅可以依赖于直接下层,而是上层可以依赖于它的所有下层。设计中我们会把各种系统的各种组件映射至不同层中,而在我所接触的一些实际项目中设计人员在映射这种组件和层间的关系时经常无意中破坏了层结构的依赖关系约束。图表 1 典型分层结构设计中的常见问题问题一:数据传输对象(DT原创 2008-03-16 17:04:00 · 1598 阅读 · 0 评论 -
黑板模式的常见实现方式
黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家。在实际应用中常见的实现模式有:A 利用数据库利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。特原创 2007-11-06 21:16:00 · 4181 阅读 · 1 评论 -
Spring构建应用系统的最佳架构与模式实践(1)
蔡 超SCEA,SCBCD,MCSD,IBM RUP Specilist北京天融信软件架构师SUN,Microsoft培训中心特邀高端教师常年提供架构咨询服务chaocai2001@yahoo.com.cn ,010-82776427 引言在使用Spring构建应用时和采用EJB构建应用一样同样也存在不少常用模式和最佳实践,当然很多Core J2EE Pattern原创 2007-05-07 14:51:00 · 963 阅读 · 0 评论 -
关于 MVC 模式中的通知机制
1 MVC 简介 一般应用中用户界面的变化相对较为频繁 , 有时需要支持多种表现模式(如 WEB 客户端和 GUI 客户端),但是数据和业务逻辑相对保持稳定。 MVC(Model-View-Controller) 模式是一种常用的设计模式 ,MVC 将模型 , 显示和控制进行了分离,可以使得应用更加方便实现对多种表现模式的支持及降低表现形式修改对整体系统的影响。由于本文重点原创 2007-01-20 18:53:00 · 1233 阅读 · 0 评论 -
“桥模式”与“极限分割”
蔡 超SCEA,SCBCD,MCSD北京天融信软件架构师SUN,Microsoft培训中心特邀高端教师常年提供架构咨询服务chaocai2001@yahoo.com.cn ,010-82776427很多设计模式的书中都用这样的语言来描述”桥模式”(GOF 95) –“把抽象与实现分开”(”Prefactoring”, Ken Pugh,2006),这样的描述实在有些让人很难原创 2007-03-05 09:44:00 · 940 阅读 · 0 评论 -
现代架构设计文档的编写
蔡 超SCEA,SCBCD,MCSD北京天融信软件架构师 SUN,Microsoft培训中心特邀高端教师常年提供架构咨询服务chaocai2001@yahoo.com.cn ,010-82776427 4+1视图与UML软件架构设计已经逐渐成为现代软件开发过程的核心,然而能够清晰表明架构设计并不是一件容易的事,就面向对象开发而言,RUP 的4+1视图已在架构设计的原创 2006-09-23 12:52:00 · 2994 阅读 · 0 评论