社区
模式及实现
帖子详情
对于某个函数在XP和2000下必须使用不同的代码实现,使用Strategy模式是否合适
poweruser
2006-11-10 01:44:25
现在有一个功能,比如获取当前端口状态,在2000和XP下实现方式不同,我想对其进行封装,采用Strategy模式是否适合?
谢谢!
...全文
534
18
打赏
收藏
对于某个函数在XP和2000下必须使用不同的代码实现,使用Strategy模式是否合适
现在有一个功能,比如获取当前端口状态,在2000和XP下实现方式不同,我想对其进行封装,采用Strategy模式是否适合? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taodm
2007-02-25
打赏
举报
回复
恐怕不如把不同的东西抽到2个dll里,根据os加载相应dll。
lyg_zy
2007-02-25
打赏
举报
回复
同意楼上!
sinall
2007-02-13
打赏
举报
回复
合适,能解决掉问题就合适。
要说的话,abstract factory也是一种strategy。
不过单就楼主的问题的话,我觉得就是strategy。
如果楼主的整个系统中充斥了大量的xp或2k不同实现的内容,那么abstract factory是个好选择。
qhgary
2007-02-02
打赏
举报
回复
这需要什么模式???最基本的C++的多态不就实现了么.
弄一个抽象类或者接口出来,然后分别继承出xp和2000下的实现类.里面重载相应的函数,提供不同的实现.
使用的时候只返回抽象类或者接口的指针,不就完了么?
dananhai
2006-11-19
打赏
举报
回复
当有更好的办法让这里(可能是不重要的)性能得到提高,但一定是损害了其他好处作前提的。
dananhai
2006-11-19
打赏
举报
回复
导致程序性能的因素通常只有20%(一种说法,当然是指关键的部分,如:执行频繁,持续时间长等),各种利弊当然要权衡,你的抉择要看这里你更重视那个质量属性(如:性能、可扩展、可维护等)。虚函数性能损失也的分跟谁比
xlsue
2006-11-18
打赏
举报
回复
太多的虚拟函数会导致性能的下降,我觉得用包装器外观会好些。参考POSA2&ACE
dananhai
2006-11-16
打赏
举报
回复
把service替换成你说的getPort()你会更好理解。
dananhai
2006-11-16
打赏
举报
回复
1、模式无偏见,都有适合位置。除此交流之用。
2、Abstract Factory适合系列产品的生成。
3、用Bridge接口实现分离,增加灵活性。Abstract Factory会用到。
4、Strategy表示类整体功能的部分实现。
代码更形象:
class Strategy_Impl
{
public:
virtual ~Strategy_Impl(){}
virtual int service() = 0;
}
class Strategy_Impl_XP : public Strategy_Impl
{
//...
}
class Strategy_Impl_2K : Strategy_Impl
{
//...
}
class Service
{
public:
void Service(Strategy_Impl *impl);
//
//
void doSomething()
{
impl_->service();
}
private:
Strategy_Impl *impl_;
}
///
void Client()
{
/// 可在运行时决定策略,当然这里不是。
Strategy_Impl_2K s2k_;
Service s(&s2k_);
s.doSomething();
}
jixingzhong
2006-11-15
打赏
举报
回复
使用策略模式可以在一定程度上带来便捷,
不过,
响应的结合其他的内容,
可能更合适 ~~
仰望星空WU
2006-11-15
打赏
举报
回复
跨平台,呵,最好用的就是typedef
或者ifdef define endif
xlsue
2006-11-15
打赏
举报
回复
根据具体的语境
xlsue
2006-11-13
打赏
举报
回复
桥模式,包装器外观+策略化加锁,参考POSA2
nule
2006-11-13
打赏
举报
回复
是啊,你想达到什么样的封装效果啊
北极猩猩
2006-11-13
打赏
举报
回复
这个问题的解决方案很多,需要说的更详细一些。
上面各位的回答应该说都只说到了一部分。楼主还是把情况说的更清楚一点吧。
珍惜生命远离CPP
2006-11-10
打赏
举报
回复
动态多态嘛,很明显用Factory系列好一些
突击召唤师
2006-11-10
打赏
举报
回复
程序启动的时候就觉得了要使用哪种方法,而不是动态选择,所以只要建立一次对象就可以了。
突击召唤师
2006-11-10
打赏
举报
回复
我比较喜欢Abstract Factory -__-
Java架构师之路:品设计
模式
写优雅
代码
总体来说设计
模式
分为三大类:创建型
模式
,结构型
模式
,行为型
模式
,共有23种设计
模式
,需要说明一点的是:设计
模式
并不是一成不变的,很多设计
模式
都有
不同
的变体,也就是有
不同
的
实现
方式,设计
模式
不是全盘照搬的...
成员
函数
指针与高性能的C++委托
成员
函数
指针与高性能的C++委托 Member Function Pointers and the Fastest Possible C++ Delegates 撰文:Don Clugston 翻译:周翔 引子 标准C++中没有真正的面向对象的
函数
指针。这一点对C++来说是...
#软件设计师 #软考 #高频知识点总结 #上午题常考知识点 #下午题分析总结
一、软件工程 【敏捷方法】 极限编程
XP
(轻量高效低风险...水晶法(每一个项目需要一个
不同
的策略约定和方法)。 并列争球法(Scrum,30天一个小冲刺) 开发流程:Product Backlog(产品待办事项) → Sprint Backl
【笔记】重构:改善既有
代码
的设计
任何㆒个傻瓜都能写出计算器可以理解的
代码
。惟有写出㆟类容易理解的
代码
,才是优秀的程序员。
基于Web的仓库管理系统的设计与
实现
(论文+PPT+源码)
JSP技术还可以将一些网页的逻辑与网页的设计和还有显示进行分离,对于一些可重用的基础的组件的开发进行支撑,更加容易的对基于Web的应用程序进行设计。在现今,计算机技术在不断发展,Web 技术也随之不断的发展,...
模式及实现
5,530
社区成员
4,169
社区内容
发帖
与我相关
我的任务
模式及实现
C/C++ 模式及实现
复制链接
扫一扫
分享
社区描述
C/C++ 模式及实现
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章