社区
模式及实现
帖子详情
怎样处理功能相同的函数
lw1a2
2009-04-11 10:42:59
假设有两个不相关的类A和B
A、B内有两个函数,实现完全相同的功能(例如查询某个数据库表)
为了消除重复代码,应该怎样处理这两个函数?
现在的处理方法是将这两个函数提到一个工具类里,合并为一个函数,然后由A和B来调用这个工具类的方法
觉得工具类的存在,似乎不太符合面向对象的要求
...全文
106
15
打赏
收藏
怎样处理功能相同的函数
假设有两个不相关的类A和B A、B内有两个函数,实现完全相同的功能(例如查询某个数据库表) 为了消除重复代码,应该怎样处理这两个函数? 现在的处理方法是将这两个函数提到一个工具类里,合并为一个函数,然后由A和B来调用这个工具类的方法 觉得工具类的存在,似乎不太符合面向对象的要求
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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 多个窗口消息共享同一个消息
处理
函数
demo
"MFC 多个窗口消息共享同一个消息
处理
函数
demo"就是这样一个示例,它展示了如何在MFC应用中实现这一
功能
。 首先,我们需要理解MFC中的消息机制。在MFC中,窗口类(如CWnd)继承自CObject,并且覆盖了默认的消息映射...
自定义
函数
替换现有
函数
比如,JavaScript中可能需要替换一个数组
处理
函数
,保持其接受
相同
参数,但执行不同的操作。 5. **特定环境适应**:在特定环境下,如移动设备、嵌入式系统等,可能需要调整
函数
以适应资源限制。自定义
函数
可以针对...
matlab 图像
处理
函数
本文将详细介绍几个重要的 MATLAB 图像
处理
函数
,包括它们的
功能
、用法以及示例。 1. `applylut`
函数
: `applylut` 用于在二进制图像中应用查找表(lookup table)进行边缘操作。例如,`lut = makelut('sum(x(:))...
C语言中必须掌握的字符串
处理
函数
.doc
C语言作为一种基础且
功能
强大的编程语言,其在字符串
处理
方面提供了一系列标准的库
函数
,这些
函数
定义在头文件中,涵盖了字符串的比较、复制、查找、分割等基本操作。掌握这些字符串
处理
函数
对于熟练使用C语言至关...
02-课件:字符串
处理
函数
.pptx
C 语言字符串
处理
函数
大全 C 语言中字符串
处理
函数
是非常重要的一部分, strings.h 中提供了多种字符串
处理
函数
,以下是常用的字符串
处理
函数
: 1. strcpy
函数
:strcpy
函数
的
功能
是拷贝一个字符串到另一个。
函数
...
模式及实现
5,530
社区成员
4,167
社区内容
发帖
与我相关
我的任务
模式及实现
C/C++ 模式及实现
复制链接
扫一扫
分享
社区描述
C/C++ 模式及实现
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章