【愚公系列】2021年12月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)

简介: 【愚公系列】2021年12月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)

文章目录

前言

一、纯虚构原则(Pure Fabrication Principle)

二、使用步骤

示例

前言

GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。


首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。


GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。


提示:以下是本篇文章正文内容,下面案例可供参考


一、纯虚构原则(Pure Fabrication Principle)

(1)问题


当不想破坏高内聚和低耦合的设计原则时,谁来负责处理这种情况?


(2)方案


将一组高内聚的职责分配给一个虚构的或处理方便的“行为”类,它并不是问题域中的概念,而是虚构的事务,以达到支持高内聚、低耦合和重用的目的。


(3)分析


纯虚构模式用于解决高内聚和低耦合之间的矛盾,它要求将一部分类的职责转移到纯虚构类中,在理想情况下,分配给这种虚构类的职责是为了达到高内聚和低耦合的目的。在实际操作过程中,纯虚构有很多种实现方式,例如将数据库操作的方法从数据库实体类中剥离出来,形成专门的数据访问类,通过对类的分解来实现类的重用,新增加的数据访问类对应于数据持久化存储,它不是问题域中的概念,而是软件开发者为了处理方便而产生的虚构概念。纯虚构可以消除由于信息专家模式带来的低内聚和高耦合的坏设计,得到一个具有更好重用性的设计。在系统中引入抽象类或接口来提高系统的扩展性也可以认为是纯虚构模式的一种应用。纯虚构模式通常基于相关功能的划分,是一种以功能为中心的对象或行为对象。在很多设计模式中都体现了纯虚构模式,例如适配器模式、策略模式等等。


二、使用步骤

示例

public class MobileAdapter : Appliance, ITarget {
    public Voltage GetMobileVoltage() {
        var voltage = GetVoltage();
        Console.WriteLine($"Appliance voltage is {voltage.Value}V!");
        voltage.Value = 3; 
        Console.WriteLine($"After adapted,it becomes {voltage.Value}V!"); 
        return voltage; 
    }
 }

以上代码可在我的 C#设计模式 系列博文中结构型模式下的适配器模式中找到。

相关文章
|
6月前
|
Java
六大设计原则-里式替换原则【Liskov Substitution Principle】
六大设计原则-里式替换原则【Liskov Substitution Principle】
21 0
|
9月前
|
设计模式 算法
原则的重要性(单一职责原则-开放封闭原则)一
原则的重要性(单一职责原则-开放封闭原则)一
65 0
软件架构设计原则--里氏替换原则
本专栏内容参考自:咕泡学院Tom老师的《Spring5核心原理与30个类手写实战》,仅作个人学习记录使用,如有侵权,联系速删
软件架构设计原则--里氏替换原则
面向对象基本原则(1)- 单一职责原则与接口隔离原则
面向对象基本原则(1)- 单一职责原则与接口隔离原则 面向对象基本原则(2)- 里式代换原则与依赖倒置原则 面向对象基本原则(3)- 最少知道原则与开闭原则
|
设计模式
【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )
【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )
167 0
|
设计模式 C#
【愚公系列】2021年12月 通用职责分配原则(四)-高内聚原则(High Cohesion Principle)
【愚公系列】2021年12月 通用职责分配原则(四)-高内聚原则(High Cohesion Principle)
|
设计模式 数据可视化 C#
【愚公系列】2021年12月 通用职责分配原则(六)-多态原则(Polymorphism Principle)
【愚公系列】2021年12月 通用职责分配原则(六)-多态原则(Polymorphism Principle)
|
设计模式 C#
【愚公系列】2021年12月 通用职责分配原则(八)-中介原则(Indirection Principle)
【愚公系列】2021年12月 通用职责分配原则(八)-中介原则(Indirection Principle)
|
设计模式 C#
【愚公系列】2021年12月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)
【愚公系列】2021年12月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)
102 0
|
设计模式
【愚公系列】2021年12月 通用职责分配原则(二)-创造者原则(Creator Principle)
【愚公系列】2021年12月 通用职责分配原则(二)-创造者原则(Creator Principle)
148 0