OOP设计模式-隐式调用超级方法或其他解决方案

亚历山大·米尔斯

是否存在一种设计模式(可能但不一定是OOP),您可以在每次调用其他方法时隐式(而不显式)调用一个函数/方法?

例如:

//pseudocode

    class Foo {

       int count = 0;

       void synchronized countUp(){
         count++;
       }

       void doSomethingFirst(){
       //call countUp() implicitly here
       }

       void doSomethingSecond(){
       //call countUp() implicitly here
       }
    }

例如,是否有一种在Java中使用注释的方法?我可以标记需要调用超级方法之类的方法。因此,这就像是对super的隐式调用。我并不是说这是一个好主意,我只是想知道是否可以通过某种设计模式来完成。

奇异龙

您可能可以复制Spring MVC框架使用的系统(我认为这不是一种设计模式)。它依赖于使继承的方法成为最终方法,并为后代提供可重载的方法。

使用部分示例代码(在Java中):

   final void doSomethingFirst(){
      countUp();
      doSomethingFirstInternal();
   }

   protected void doSomethingFirstInternal() {
      // Empty implementation that descendants can override when necessary.
   }

我并不是说这是个好主意-您需要100%确保应首先执行代码。但这是一种选择,粗心的程序员无法引入错误,因为他们忘记了调用super()。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

此解决方案的不同设计模式

使用状态设计模式的方案

(PHP)OOP设计-泛化方法

Java中的设计模式和OOP原理

抽象类,OOP设计模式

工厂设计模式和钻石OOP问题

PHP OOP使用哪种设计模式

静态类DbTable的最佳OOP设计模式

用于程序重构的OOP设计模式

策略设计模式-停止方法

责任链设计模式是否适合在硬件组件上运行的Python解决方案

使用设计自动化 API 将 Revit 打印为 PDF - 不允许打印机设置、任何其他解决方法或解决方案

MVC模式否定其他设计模式吗?

确定方法调用顺序的接口设计模式

OOP模式-处理极其相似的方法

如何使用OOP改进解决方案?

为什么要在Dao设计模式或其他设计模式中使用界面

我的设计用户模型自定义字段用户名始终为零。我已经尝试了堆栈溢出的所有其他解决方案

如何解决这个问题(设计模式)

设计休眠实体的解决方案

设计模式:子类调用基类

声明式和命令式模式是设计模式吗?

OOP中的数据库查询...设计模式?

有没有不使用异常就中断程序执行的设计模式或任何典型的解决方案?

C#实体框架/ ASP.NET REST和模型设计模式或解决方案体系结构

是否有任何好的设计模式或解决方案来处理状态之间具有依赖性的过渡行为?

工厂设计模式-在子类中定义方法

设计测井方法进入和退出模式?

枚举组合的设计模式(方法参数)