随笔分类 - 架构与模式
网站服务架构
摘要:服务器划分 对于访问量大的网站而言,将网站的各个部分拆分分别部署到不同服务器上是很有必要的。例如将图片和web站点分开。一般而言,在网站的整个服务器部署上分为如下几种类型:文件服务器:一般存储系统的相关图片和文件,给各个子系统提供统一的文件调用代理服务器:一般使用linux+Nginx作为反向代理w...
阅读全文
下载频道2013年超人气精华资源汇总---全都是免积分下载
摘要:.Net1、C#入门到精通加强版2、C#类库查询手册Android3、最新androidADT-21.1.04、Android开发精典案例60个【源码】5、安卓开发必学书籍(30本合集)6、Android经典源码全集[简单易懂]7、200款优秀Android项目源码8、Android开发入门教程9、...
阅读全文
B2C电子商务网站技术框架
摘要:一 设计原则电子商务平台总体结构的设计应从体系、功能、信息、过程等各个方面保证整个电子商务平台总体目标的实现,以提高市场竞争能力。总体结构的设计应考虑以下设计原则:快速响应原则:商机稍纵即逝,网站应该能够快速响应。一方面需要能够随时根据业务需要进行更新网站内容,另一方面需要能够迅速开发出新的网站功能,适应新的业务模式。高可用性原则:高可用性包含多个层面的含义。首先, 网站必须稳定提供服务,网站功能保持随时正常可用。其次,交互设计注重用户体验。最后,网站性能必须表现卓越。这些都是以网站大用户量、高并发访问为前提的。安全性原则:网站平台必须能够保证业务数据存储、传输安全,保证数据不丢失、不被越权阅
阅读全文
三层体系结构总结
摘要:所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开...
阅读全文
PetShop的系统架构设计
摘要:《解剖PetShop》系列之一 前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅...
阅读全文
应用系统架构设计
摘要:我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软dotNet平台上做应用开发系统的一般架构流程设计做一个粗浅的讨论。 总体设计图 表示层 表示层由...
阅读全文
IOC的概念
摘要:最近在学习IOC的东西,顺便写点加深自己的理解。。。 1.什么是IOC(Inversion of control-控制反转) Ioc(inversion of control)的翻译为控制反转。这个概念其实并不新奇,在程序开发的各个环节你都有意或无意的使用到了。 控制反转顾名思义是指在程序执行时控制权的转移,比如一个控制台程序如: using System; ...
阅读全文
使用接口实现附带插件功能的程序
摘要:插件功能给软件的使用者可以扩充软件功能的机会。我们不可能让软件适用于所有人,也不是所有的人都会出资帮助你实现他们的需求。插件功能提供了一个软件的高度可扩充性,允许用户作为软件的二次开发者,继续完善软件的功能。 为了在软件中加入插件功能,我们需要下面几个特别的条件: (1) 本软件(此后我们称之为‘宿主程序’)需要开放自己的成员,包括属性、方法、事件为插件程序提供服务。 (2) ...
阅读全文
我们是否需要ORM
摘要:在遥远的编程大陆上,一条大河分隔了整个大陆。河的西边住着一群疯狂的程序员,他们疯狂的崇拜着OO大神,他们以OO大神规定的教义要求自己和自己的身边的一切,他们把自己的首都叫做OO城。但是 不如意的是,大陆上的美女,都集中在OOfans的对面:东岸。 河的东岸(数据库之领)住着崇拜“关系”女神的部落。虽然在程序员们的不断的圣战下很多部落的蛮人都偷偷信仰了OO大神,但是这一切都是不公开的。“关系”女神仍...
阅读全文
大型软件开发与ORM构架
摘要:大型软件开发与ORM构架 在最近的几年里,很多程序员把自己的业余时间献给了ORM框架的开发,甚至在有些单位的招聘面试中把是否理解或是能否使用一种ORM构架,作为了一种评价开发人员技能的必要条件。作为一个一线的开发工人,我毫不否认ORM框架对设计模式社区发展作出巨大的贡献,以及对提高开发效率这一目标的成果。 但是请各位读者注意的是,本文是站在大型软件开发的角度上阐述笔...
阅读全文
Spring.NET学习实践(2)
摘要:Spring.NET学习实践(2) 修改下我们的小例子: 在上一篇文章的最后,我们作了一个简单的例子,来使用Spring.NET,虽然这个例子真的是很简陋. static void Main(string[] args) { StaticApplicationContext context = new StaticAp...
阅读全文
Spring.NET学习实践(1)---Spring.NET的构架
摘要:Spring.NET学习实践(1) Spring.NET的构架: 从2004-08-04的第一版本算起,Spring.NET出来已经很久了。但是相比较他的姐姐Spring,虽然借助于 .NET 强大的反射机制,甚至拥有比原 Java 版本更强大的功能。但是不得不承认,相对于JAVA社区的人山人海,Spring.NET的人气还真的是不旺。 在这篇笔记中,我会谈及一些概念和术语,如果你...
阅读全文
从简单工厂到工厂方法
摘要:写在前面 最近一段时间在研究有关设计模式方面的文章,拜读了TerryLee以及吕震宇两位老师所写的设计模式方面的系列文章,收获颇丰,也让我对OOP,OOD有了新的理解和认识,不过在看到工厂方面的几篇文章时,却总有个地方想不通,望各位老师专家能替在下答疑解惑,以下是自己对工厂模式的一些理解以及提出的一种改良方案,不知道是否有人提出过类似的方案,如有雷同纯属巧合。有说得不对的地方还请批评指正。 从简...
阅读全文
设计模式学习笔记(十三)——Proxy代理模式
摘要:Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。如下图: 比如说C和A不在一个服务器上,A要频繁的调...
阅读全文
设计模式学习笔记(十二)——Flyweight享元模式
摘要:Flyweight享元设计模式是一种结构型设计模式,它主要解决的问题是:由于(同类)对象的数量太大,采用面向对象时给系统带来了难以承受的内存开销。比如有这样一个场景:一个停车场中有1000辆汽车,我们所定义的汽车对象占用内存0.3M,那么要实例化1000辆就是300M。由此可见,在这种情况下采用一般的面向对象方式出现了大量细粒度的对象会很快充斥在系统中,从而带来很高的运行是代价(这里指的代价是内...
阅读全文
设计模式学习笔记(十一)——Facade外观模式
摘要:Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮...
阅读全文
设计模式学习笔记(十)——Decorator装饰模式
摘要:Decorator装饰模式是一种结构型模式,它主要是解决:“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀(多继承)。继承为类型引入的静态特质的意思是说以继承的方式使某一类型要获得功能是在编译时。所谓静态,是指在编译时;动态,是指在运行时。 GoF《设计模式》中...
阅读全文
设计模式学习笔记(九)——Composite组合模式
摘要:Composite组合模式主要是应对这样的问题:一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况。在编写时我们常常会造成:客户代码过多地依赖于对象容器复杂的内部实现,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性的弊端。 GoF《设计模式》中说到:将对象组合成树形结构以表示“部分-整体”的层次结构。Com...
阅读全文
设计模式学习笔记(八)——Bridge桥接模式
摘要:Bridge桥接模式是一种结构型模式,它主要应对的是:由于类型的固有罗辑,使得类型具有两个或两个以上的纬度变化。也就是要求抽象不应依赖于实现细节,实现细节应依赖于抽象。 《设计模式》中说到将抽象部分与实现部分分离,使他们可以独立的变化。 举个例子更清楚些,好像我们平时玩的游戏中有PS版的,但是不是大家都有PS。这时我们等一段时间,一般会出PC版的或其他版本。由于支持游戏...
阅读全文
设计模式学习笔记(七)——Adapter适配器模式
摘要:Adapter适配器模式是一种结构型模式,主要应对:由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的。 《设计模式》中说道:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。 在实际的生活中有很多例子,如:我们常使用的移动硬盘,无论是笔记本硬盘...
阅读全文