社区
模式及实现
帖子详情
怎样处理功能相同的函数
lw1a2
2009-04-11 10:42:59
假设有两个不相关的类A和B
A、B内有两个函数,实现完全相同的功能(例如查询某个数据库表)
为了消除重复代码,应该怎样处理这两个函数?
现在的处理方法是将这两个函数提到一个工具类里,合并为一个函数,然后由A和B来调用这个工具类的方法
觉得工具类的存在,似乎不太符合面向对象的要求
...全文
102
15
打赏
收藏
怎样处理功能相同的函数
假设有两个不相关的类A和B A、B内有两个函数,实现完全相同的功能(例如查询某个数据库表) 为了消除重复代码,应该怎样处理这两个函数? 现在的处理方法是将这两个函数提到一个工具类里,合并为一个函数,然后由A和B来调用这个工具类的方法 觉得工具类的存在,似乎不太符合面向对象的要求
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hityct1
2009-04-11
打赏
举报
回复
关注一下。我觉得设计成一个独立函数就可以了。另外让我想起了模板方法模式,可惜学的不过精,糊涂。
lw1a2
2009-04-11
打赏
举报
回复
[Quote=引用 2 楼 akirya 的回复:]
没什么合面向对象的做法.
方便 易维护 扩展即可.
[/Quote]
系统里面充斥这许多工具类,看着很不爽
lw1a2
2009-04-11
打赏
举报
回复
[Quote=引用 1 楼 ylywyn136 的回复:]
删除 A类里的这个函数,将B类的这个函数设成A类的友元
[/Quote]
友元封装的杀手
ylywyn136
2009-04-11
打赏
举报
回复
晕.这是一楼的 方法..
jieao111
2009-04-11
打赏
举报
回复
想起青润老大的blog“拜托,不要再本本主义了”
mengde007
2009-04-11
打赏
举报
回复
藐视6楼的方法可行。
猫已经找不回了
2009-04-11
打赏
举报
回复
把其中一个类里(如A)的该功能函数去掉,然后声明A为B的友元,需要的时候,直接调用。
ch1oE
2009-04-11
打赏
举报
回复
符合应用的即可。
PS:面向对象的要求是什么?是什么?是什么?理论是在实践的基础上作出的总结,但绝不是死律。
Cloud_drift
2009-04-11
打赏
举报
回复
这个工具类的功能很像是接口的功能嘛,这不正是面向对象的一部分吗?
morris88
2009-04-11
打赏
举报
回复
将这两个函数提出来,设计成模版
珍惜生命远离CPP
2009-04-11
打赏
举报
回复
没什么合面向对象的做法.
方便 易维护 扩展即可.
ylywyn136
2009-04-11
打赏
举报
回复
删除 A类里的这个函数,将B类的这个函数设成A类的友元
帅得不敢出门
2009-04-11
打赏
举报
回复
我不知道为啥一定要封装到类中.
有时候想的太复杂了结果最简单的方法没用上,或许是你已经认定了某种解决方法.
lw1a2
2009-04-11
打赏
举报
回复
[Quote=引用 13 楼 hiboys 的回复:]
用最简单的继承就行了。
supperclass中定义此方法。
多个subclass都可以继承supperclass从而“免费”使用此方法了。
c++有多继承。不影响你的子类继承其他父类。java的话用接口更合适些。
接口是实现AOP的简单方案
[/Quote]
两个不相关的类都继承一个父类....
hiboys
2009-04-11
打赏
举报
回复
用最简单的继承就行了。
supperclass中定义此方法。
多个subclass都可以继承supperclass从而“免费”使用此方法了。
c++有多继承。不影响你的子类继承其他父类。java的话用接口更合适些。
接口是实现AOP的简单方案
数字图像
处理
:直方图增强
函数
数字图像
处理
:基于mfc实现的直方图增强
函数
。目标:改善图像质量/改善视觉效果标准:相当主观,因人而异 没有完全通用的标准可以有一些相对一致的准则技术:“好”,“有用”的含义不
相同
具体增强技术也可以大不...
PHP bible(PHP圣经)中文版
数组
处理
函数
库 拼写检查
函数
库 BC 高精确度
函数
库 历法
函数
库 ClibPDF
函数
库 日期与时间
函数
库 DBA
函数
库 dBase 格式资料表
函数
库 dbm 类数据库
函数
库 目录管理
函数
库 动态链接
函数
库 程序执行
功能
...
玩转Python图像
处理
在需要实现某一个
功能
时,直接调用其对应的
函数
即可,像使用Photoshop的各种
功能
一样。也可以将OpenCV看成“白盒”,关注其每一个
函数
的具体实现,认真研究每一个
函数
的具体实现方法和实现细节。这两种方式都是学习...
python中有
函数
重载吗
python中没有
函数
重载 为了考虑为什么python不提供
函数
重载,首先...答案是根本不需要
处理
,因为 python 可以接受任何类型的参数,如果
函数
的
功能
相同
,那么不同的参数类型在 python 中很可能是
相同
的代码,没有必要
字符串
处理
函数
字符串
处理
是程序
处理
中最常用的
功能
之一,C语言标准库专门为其提供了一系列
处理
函数
。在编写程序的过程中,合理、有效地使用这些字符串
处理
函数
,可以提高编程效率,同时增强程序性能。其中较为常用的字符串
处理
...
模式及实现
5,530
社区成员
4,169
社区内容
发帖
与我相关
我的任务
模式及实现
C/C++ 模式及实现
复制链接
扫一扫
分享
社区描述
C/C++ 模式及实现
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章