美文网首页
设计模式之富基类模式

设计模式之富基类模式

作者: forks1990 | 来源:发表于2020-05-22 20:51 被阅读0次

我通常是反面向对象派生的,不是今天的题目,不展开说。

纯粹一点其实与好与不好无关,但是却不合算,文雅一些叫做不实际,但是不如合算来得精确。

反面向对象设计的一个有力工具是接口,为某个 Unit of Work,设计一个高内聚的接口。面对各种场景实现这一接口。实现接口避免了派生带来的各种系统牵扯,达到更灵活的复用的目的。纯洁也有代价,实现类中存在通用的逻辑,这时可以借助富基类。

把通用的操作封装在函数中,保存在通用的基类上,但是需要遵守一个基本原则:

共享的函数需是无状态的,所有的状态都保存在参数中。如果语言支持:

  1. 定义为静态方法,或者类方法
  2. 访问控制设置为 protected

如果不使用富基类,有两种思路:

  1. 使用单独的工具函数类,比如接口 ImportDriverInterface,定义工具类 ImportDriverUtil, ImportDriverHelper,但是这两个名字一般是用来辅助调用者,也许应该改成 ImportDriverImplUtil, ImportDriverImplHelper
    这个方法的缺点是需要引入一个顶级的名字,定义,使用,查找比较麻烦,也暴露了内部实现。
    Util, Helper 其实是个很糟的名字,无法通过名字知道他提供什么功能。
  2. 部分语言支持在接口中定义静态方法,也可以使用。优点是方便,缺点是暴露了实现,也给类库使用者带来困扰和疑惑。

面向接口,面向函数编程,日益觉得一项重要的工作是控制顶层名字。组件颗粒度变小,顶层名字变多了,不知道如何起名,如何设计 namespace/package layout,使用富基类,至少名字看上去要清晰一些。比如约定命名为 BaseImportDriver 或者 AbstractImportDriver,一眼就知道他的目的。

相关文章

  • 设计模式之富基类模式

    我通常是反面向对象派生的,不是今天的题目,不展开说。 纯粹一点其实与好与不好无关,但是却不合算,文雅一些叫做不实际...

  • iOS 基于MVC设计模式的基类设计

    iOS 基于MVC设计模式的基类设计

  • 设计模式之禅(一) -- 里氏替换原则

    本文及后续设计模式之禅主要参考《设计模式之禅》 定义 所有引用基类的地方必须能透明地使用其子类的对象,通俗点讲就是...

  • 设计模式总结大纲

    设计模式范例 设计模式 基本的UML类图的关系 设计模式之(命令模式) 基本概念 角色划分 UML类图 应用场景 ...

  • 【设计模式】之抽象工厂模式

    创造性设计模式 创造型模式主要是为了实例化类所用。进一步又分为类创建、对象创建模式。 类创建模式 类创建模式主要基...

  • 设计模式目录

    1. 设计模式中类的关系和六大设计原则 一、设计模式简介二、设计模式中类的关系三、设计模式的六大设计原则之单一职责...

  • Java设计模式——原型模式

    Java设计模式之原型模式 回顾 Java设计模式系列的上一期写了工厂模式,那么创建类的设计模式还有生成器模式和原...

  • UML

    参考 设计模式之 UML 类图 图解

  • Java设计模式——解释器模式

    Java设计模式之解释器模式 这期开始跟大家分享行为模式,也是最后一类设计模式模式。 简介 解释器模式是定义一套规...

  • iOS设计模式之美-适配器模式

    iOS设计模式之美-工厂模式iOS设计模式之美-抽象工厂模式iOS设计模式之美-生成器模式iOS设计模式之美-适配...

网友评论

      本文标题:设计模式之富基类模式

      本文链接:https://www.haomeiwen.com/subject/wgvcahtx.html