加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

设计模式之规格模式

发布时间:2020-12-13 20:57:31 所属栏目:百科 来源:网络整理
导读:规格模式 规格模式 使用了策略模式,组合模式. 只不过将模式具体化了 规格模式将 与或非 操作进行了封装,实现了类似 SQL查询语句的操作. 类图如下: 其中的角色如下: ISpecification 抽象规格书: 对规格书的抽象定义 CompositeSpecification 组合规格书: 抽象

规格模式

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

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

类图如下:

设计模式之规格模式

其中的角色如下:

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

抽象规格书代码:

设计模式之规格模式

组合规格书代码:

设计模式之规格模式

与或非规格书代码:

设计模式之规格模式

设计模式之规格模式

设计模式之规格模式

业务规格书:

设计模式之规格模式

场景类:

设计模式之规格模式


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读