zoukankan      html  css  js  c++  java
  • 设计模式之规格模式

    规格模式

    规格模式 使用了策略模式,组合模式. 只不过将模式具体化了

    规格模式将 与或非 操作进行了封装, 实现了类似 SQL查询语句的操作.

    类图如下:

    设计模式之规格模式

     

    其中的角色如下:

    1. ISpecification 抽象规格书: 对规格书的抽象定义
    2. CompositeSpecification 组合规格书: 抽象类, 对规格书进行 与或非 操作, 实现 and,or,not 方法, 在方法中关联子类, 因为子类为固定类,故而父类可以进行关联
    3. AndSpecification 与规格书: 对规格书进行与操作, 实现 isSatisfiedBy 方法
    4. OrSpecification 或规格书
    5. NotSpecification 非规格书
    6. BizSpecification 业务规格书: 实现 isSatisfiedBy 方法, 对业务进行判断, 一个类为一种判断方式, 可进行扩展

    抽象规格书代码:

    设计模式之规格模式

     

    组合规格书代码:

    设计模式之规格模式

     

    与或非规格书代码:

    设计模式之规格模式

     

    设计模式之规格模式

     

    设计模式之规格模式

     

    业务规格书:

    设计模式之规格模式

     

    场景类:

    设计模式之规格模式

     


    规格模式已经是一个非常具体的应用框架了, 遇到类似多个对象中筛选查找, 或者业务规则不适于放在任何已有实体或值对象中, 而且规则的变化和组合会掩盖那些领域对象的基本含义, 或者是想自己编写一个类似LINQ的语言工具的时候就可以照搬这部分代码, 只要实现自己的逻辑规格书即可

  • 相关阅读:
    Java8简明教程第二章
    Java8简明教程-2
    Java8简明教程第一章
    Java8简明教程-1
    redis的初级使用
    hdu--4681--dp
    hdu--5091--线段树
    hdu--1542&&1255&1828--线段树<扫描线>
    hdu--5139--bc
    hdu--5128--计算几何<算不上.暴力模拟> && hdu--5131--初级cmp
  • 原文地址:https://www.cnblogs.com/hujingnb/p/10171626.html
Copyright © 2011-2022 走看看