使用继承和模板拆分大类

原创 2007年09月25日 12:31:00

长久以来,我一直寻找把过大的类拆分的方法,我曾经使用过的,也就是把一些功能提取成一个类使用has-a的关系包含。但是这将造成极大的文件关联、依赖性,当编译需要的时间让你无法容忍的时候,你会对降低依赖性乐此不疲。

我使用了继承,把数据抽象在基类里,这可以降低操作方法的文件依赖性,但是效果不明显。

直到我疯狂的使用模板,如果你喜欢,你还可以定制逻辑上只接受特定类的模板,而这个模板本身编译的时候不需要它依赖的特定逻辑类。这种方法尤其使用于在你需要调用者的某一个或有限几个数据时,模板方法是非常好的选择。

Loki的想法是,模板有很好的类型型,继承有很好的扩张性,二者结合起来你在获得扩张性的同时保留了严格的类型性。

我认为,这是我目前可以想到的比较不错的解决文件依赖的办法了。

thinkphp使用模板继承来对模板进行布局

以前总是使用模板布局,感觉用的挺顺,如下图 我在后台或者前台页面中使用,页面布局多数为上下结构,或者上左下结构(左侧不变) 单是当页面结构比较复杂或者多变的时候,模板布局就显得不太合适了,所以...
  • fei003
  • fei003
  • 2017年04月07日 16:18
  • 755

Django之模板继承

在使用Django进行web开发时,往往会构造一个基础框架模板即base.html,而后在其子模板中对它所包含站点公用部分和定义块进行重载。 首先创建一个base.html,源码为: {%...
  • u012734441
  • u012734441
  • 2015年03月29日 09:48
  • 4594

C++模板类的继承1 :模板类继承模板类

大学时代旧作。       模板类的继承是C++中较为高级的一种用法,其语法与普通C++类的继承略有差别。本文实例演示了一个通过C++模板类继承实现排序算法的案例。代码如下: 1.   实现List基...
  • u011747351
  • u011747351
  • 2013年08月25日 13:53
  • 1219

c++设计中什么时候用模板什么时候用继承

当对象的类型不影响类中函数的行为时,使用模板。如:常见的堆、栈、队列; 对象的类型不影响类中函数的行为:堆、栈这些无论对象是什么,都少补了入栈,出栈等操作。并不改变函数的行为。 当对象的类...
  • qq_37185716
  • qq_37185716
  • 2017年07月17日 11:37
  • 279

区分继承和模板

  • steven216
  • steven216
  • 2007年02月16日 12:12
  • 439

我的C++实践(6):模板与继承相结合的威力

    模板表示类的集合,让模板继承一个类与面向对象编程中的继承并没有本质的差别。但是在模板中使用继承有一些特别的地方,比如基类可以依赖于模板参数(例如继承B,这称为依赖型基类)、甚至模板参数直接可以...
  • zhoudaxia
  • zhoudaxia
  • 2009年08月31日 15:56
  • 2720

类模版的特化 及 特化的继承

#include #include #include using namespace std; template class Test { private: public: T tes...
  • daa20
  • daa20
  • 2015年12月27日 22:19
  • 383

数据库优化——postgresql分区与继承

数据库优化——postgresql分区与继承前言在实际项目开发中经常需要对各种操作日志进行保存,时间一久数据量就变得很大,所以当面临对这些表直接查询时,往往都会耗费较长的时间,从而影响用户的体验。由于...
  • u013574525
  • u013574525
  • 2017年02月06日 17:10
  • 156

thinkPHP 5 模板继承

首先要建立一个公共页面: 以下是(控制器)index.php
  • toume
  • toume
  • 2017年07月18日 14:20
  • 736

thinkphp模板继承小结

thinkphp模板继承小结 hp的模板继承,通俗一点,就是设定一个模板布局,继承的子类,都要按照这个模板展示。 模板继承的好处 1,可以把公共部分直接加载在父极模板,在后续的网页加载过成中,直...
  • SiuKong_Ngau
  • SiuKong_Ngau
  • 2016年11月15日 21:23
  • 1699
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用继承和模板拆分大类
举报原因:
原因补充:

(最多只允许输入30个字)