通用职责分配软件原则之7-纯虚构原则

纯虚构原则(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#设计模式 系列博文中结构型模式下的适配器模式中找到。

猜你喜欢

转载自blog.csdn.net/qq_31116753/article/details/81259803