大型网站系统设计架构深入分析

    我的研发实践中,组件框架设计应该采用分层设计模型,组件采用递归结构。每个框架不能依赖其他框架而存在,应该能够独立开发和部署。组件和组件之间,组件和框架之间只能通过API通讯。将组件框架应该再细分成表现层框架、业务层框架、数据层框架、公共服务框架、基础框架、系统框架和与业务系统密切相关的业务框架等构成,除了具体的业务框架外,其他框架必须优先选择比较成熟的产品和免费框架。

    组件是事先定义了编程接口和功能、相互独立的软件单元。一个组件一般有组件标识符、接口、创建方法和功能等要素组成。组件标识符也就是组件的名字, 在整个体系结构中必须是唯一的,它是客户程序使用组件的唯一标识。

    组件设计过程中要精心定义组件的创建方法、组件标识符、接口规范和组件的功能等要素。组件多采用定义了良好接口的工厂组件创建,而工厂组件则由系统 函数或系统对象创建。组件标识符主要采用GUID、接口名称、其他特定的字符串等表示,它是客户程序使用组件的逻辑名,应用系统在运行过程中,由容器将其 与组件的具体实现映射。接口规范多用函数和抽象类的形式表现。组件的内部结构如图2所示。有组件工厂、组件服务提供者、抽象服务等。抽象服务是实现组件接 口的一个抽象类,其目的是为了简化应用程序对组件的编码。应用程序只要继承该抽象类即可满足接口规范需要,而把精力集中到核心功能的实现上。

组件化的架构设计

当一个组件框架设计完成后,应该按照开闭原则、依赖倒转原则、接口隔离原则等对其进行评价,检查和评价整个系统的可维护性和可复用性。

按照开闭原则,要检查设计的组件框架是否满足对扩展开发,而对修改关闭,即整个框架在扩展其功能时,应当是在不修改代码的前提下便可,换言之,源代 码不修改,框架行为就可改变。要实现开闭原则,组件的抽象化是关键,实践中,检查在框架中是否容易加入“即插即用”的组件便是经验之一。

依赖倒转原则,就是要检查系统要依赖于抽象,而不是依赖于具体的实现。即客户端编程要依赖于抽象耦合,而不是具体耦合,要针对接口编程,而不是针对 实现编程。具体的讲,就是看一个组件在其逻辑名称、接口不改变的情况下,修改其对象名称、类名称以及具体实现的情况下,客户程序是否需要修改。如果不是, 则该框架不符合依赖倒转原则,可扩展性和可维护性存在问题。

通过接口隔离原则,可以检查一个组件是使用了多个专门的接口,还是使用单一的总接口进行编程。如果使用过于臃肿的接口,便存在接口污染。一个接口应 当简单地只代表一个角色,而不是多个角色。如果组件涉及多个角色,那么每一个角色应当由一个特定的接口代表。也就是说,一个接口其中的函数数量应该越少越 好。

符合上述原则的框架,基本上是在高层次实现了系统的复用,也是一个易于维护的系统,才值得投入人力和物力去编码,否则,该框架的生命周期不会太长,系统开始修改之时,可能也是其终结之日。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值