怎样处理功能相同的函数

lw1a2 2009-04-11 10:42:59
假设有两个不相关的类A和B
A、B内有两个函数,实现完全相同的功能(例如查询某个数据库表)
为了消除重复代码,应该怎样处理这两个函数?

现在的处理方法是将这两个函数提到一个工具类里,合并为一个函数,然后由A和B来调用这个工具类的方法
觉得工具类的存在,似乎不太符合面向对象的要求
...全文
53 点赞 收藏 15
写回复
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的简单方案
回复 点赞
发动态
发帖子
模式及实现
创建于2007-09-28

4547

社区成员

4178

社区内容

C/C++ 模式及实现
社区公告
暂无公告