现在的位置: 首页 > 综合 > 正文

PEAA整理参考(持续)

2011年06月13日 ⁄ 综合 ⁄ 共 2022字 ⁄ 字号 评论关闭

重读PEAA,把其提到的模式整理一下,方便参考

领域逻辑模式

事务脚本(Transaction script)
    使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求

表模块(Table Module)
    处理某一数据库表或视图中所有行的业务逻辑的一个实例

领域模型(Domain Module)
    合并了行为和数据的领域的对象模型

服务层(Service Layer)
    通过一个服务层来定义应用程序边界,在服务层中建立一组可用的操作集合,并在每个操作内部协调应用程序的响应

数据源架构模式

表数据入口(Table Data Gateway)
    充当数据库表访问入口的对象,一个实例处理表中的所有的行

行数据入口(Row Data Gateway)
    充当数据库中单条记录入口的对象,每行一个实例

活动记录(Active Record)
    一个对象,它包括数据库表或视图的某一行,封装数据库访问,并在这些数据上增加了业务逻辑

数据库映射器(Data Mapper)
    在保持对象和数据库(以及映射器本身)彼此独立的情况下在二者之间移动数据的一个映射器

对象-关系行为模式

工作单元(Unit of Work)
    维护受业务事务影响的对象列表,并协调变化的写入和并发问题的解决

对象-关系结构模式

对象-关系元数据映射模式

Web表现模式

MVC模式
把用户界面交互分拆到三种不同角色中

页面控制器(Page Controller)
    在Web为特定页面或动作处理请求的对象

前端控制器(Front Controller)
    为Web站点处理所有请求的控制器,易于集中控制、易于抽象和装饰

模板视图(Template View)
    在html页面嵌入标记用于response信息

转换视图(Transform View)
    一项项处理领域逻辑,并将其转化成html的视图

两步视图(Two step View)
    先形成逻辑页面,在转换成html页面

应用控制器(Application Controller)
    应于处理屏幕导航和应用程序流的集中控制器,适于复杂的屏幕逻辑需求

分布模式

远程外观(Remote Facade)
    为细粒度对象提供粗粒度的外观用来改善网络上的效率,而服务层未必需要粗粒度封装

数据传输对象(Data Transfer Object)
    一个为了减少方法调用次数而在进程间传输数据的对象,有单一/多个(细分)的选择

离线并发模式

会话状态模式

客户会话状态(Client State)
    将会话状态保存在客户端

服务端会话状态(Server State)
    将会话状态以序列化的方式存放在服务端

数据库会话状态(DataBase State)
    将会话数据作为已提交的数据保存到数据库中

基本模式

入口(Gateway)
    Client用于封装外部系统或者资源访问的对象,而Facade通常由服务作者提供,用于简化服务API

映射器(Mapper)
    在两个独立的对象间通信的对象,通常于层间,如数据库映射器
    Mediator解藕个对象间关系,但各对象知晓Mediator本身的存在,映射器不为任一子系统所知晓

层超类(Layer Supertype)
    某一类型充当一层中所有类型的超类

分离接口
    在一个包中定义接口,在另外一个与这个包分离的包中实现接口

注册表(Registry)
    一个众所周知的对象,其他对象可以通过该对象公共的对象的服务,如 Facade Session

值对象(Value Object)
    一个如货币或日期这样的小而简单的对象,判等时不根据标识ID,如.NET的struct类型
    注:j2ee社区使用此名称表示数据传输对象

货币(Money)
    表示一个货币值

特殊情况(Special Case)
    对特殊情况提供特殊行为的子类,如Employee实现的NULLEmployee

插件(Plugin)
    在配置时而非编译时链接类,结合工厂、接口、单体的插件实现

    plugin.JPG

                                例图

interface IdGenerator... 
        public static final IdGenerator INSTANCE =
               (IdGenerator) PluginFactory.getPlugin(IdGenerator.class);

 


服务桩(Service
Stub

       在测试时移除对具体服务的依赖,定义入口,以插件方式载入入口的实现,保持服务桩简单

      

srvstub.JPG
                                图中Tax Service interface即为Gateway

记录集(Recordset

       表格数据在内存中的表现方式

整理持续中......

抱歉!评论已关闭.