在类中调用自己类的方法
来源:互联网 发布:数据库的储存过程 编辑:程序博客网 时间:2024/05/20 01:11
最近注意到一个以前没有注意的现象,如题一个类调用自己类中的方法。
第一次发现这个特点是在模板方法模式中找到的。
先看模板模式大概的代码
abstract class AbstractClass{ public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); public void TemplateMethod(){ PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); }}
大话设计模式上是这么说的:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
怎么理解这句话呢?我自己的理解是这样的。因为将想要调用什么方法都写死在TemplateMethod()中,子类想要继承就老老实实将TemplateMethod()也继承下来。这就是定义了一个算法的骨架。但是在抽象类中所有的方法都是抽象的,必须在子类中实现,这就是将实现延迟到子类中。模板方法模式把不变的东西搬到超类中,去除子类中重复的东西。比较适合变化较少,代码比较复杂的环境中。
但是这种语法现象在观察者模式中也出现了。
真题中大量使用了这种现象。相比题中给出的图多了很多方法,而且在实例化使用时只使用了其中的一个。说明在类中自己调用了自己的方法。相比书上给出的东西进行了很多改造,使难度提升了。
总结
1学习时应该注意大局和细节的结合。大局帮我们知道它有什么特色,以及作用。细节帮助我们了解具体的运行方式和实现方式。细节的掌握有助于我们加深对于大局的掌握
2与以往相比,考题进行了很多改造,变难了。需要更多的努力。
0 0
- 在类中调用自己类的方法
- php中抽象类在其方法中例化其子类来完成对自己方法的调用
- 在eclipse中调用自己写的类
- 在自己写的类中启动Activity的方法
- 在构造方法中调用当前类的构造方法
- MainActivity中为什么不能在自己创建的线程中调用控件的方法?
- Java_在其他类中调用ToolTipManager的方法,ex.调用ToolTipManager的setInitialDelay()方法
- 在asp.net中如何调用自定义类的方法?
- 如何在Python中调用父类的同名方法
- 如何在Python中调用父类的同名方法
- 在同一个类中重载方法的互相调用
- //如果要在子类中调用父类的方法,则应在子类的构造方法中调用
- 如何在自己创建的类中调用 _default页的控件内容
- 如何调用继承了httpservlet的类中自己写的方法
- 在HttpSessionListener 中调用类方法
- 在python中调用自己写的方法或函数function
- 如何要在Swift工程中调用OC文件 以及 如何调用某个类的方法
- objectiveC【语法】调用父类自己的方法
- 经典插入排序算法分析 未优化的版本 C语言实现
- 枚举类型
- 关于linux启动读取配置文件的情况
- Spring4+Hibernate4事务小记
- Service与线程和进程的关系
- 在类中调用自己类的方法
- 数据库性能优化之段顾问
- HDU 2.1.4 又见GCD
- SG函数
- 约瑟夫问题求解
- win7 x64 若缺少msvcp71.dll,会造成不能上网,但网络连接正常!
- Arcpy基础入门-2、arcpy的批处理功能
- 动态规划
- 大二层网络技术背景及主要技术方向