问题描述
- c++巨型类的拆分策略。问题标题是要多长?
-
在实际的项目中,对板卡进行升级,流程包括:解压升级包->格式化目录->升级固件->升级软件,每一步操作都很复杂,涉及到的业务函数很多,再加上有不同的板卡,可能在某些步骤不大相同,于是把不相同的部分涉及成虚函数,在子类中进行实现,但基类仍然很大,函数很多。想进一步的拆分,有没有好的思路借鉴?
看了看设计模式,参考策略模式,把流程每一大步都拆分成一个单独的类,然后再继承这个类用于实现不同的步骤,但是带来的问题就是每个特殊的板卡在多个继承体系中出现,感觉太碎。
鄙人非计算机专业出身,对于软件工程没有太多了解,希望各位大牛多多支招。谢谢。
解决方案
基类抽象和归统出所有函数和接口,尽量在函数参数上下功夫,将函数数量控制的少些,然后类里面写出看套类,就像板卡,
不同板卡可以有自己的私有函数,需要透明的地方可以写有缘类和函数,Vc中这样实现比较理想
解决方案二:
函数多也没关系 类函数多点无所谓 只要子类继承实现自己的特定实现 这样也清楚
解决方案三:
可以把板卡中相同的步骤集中在一个类里,每个独立的步骤都可以实例化出一个类,然后通过聚合的方式,聚合在一起,步骤功能之间如果也有耦合,
可以再按照耦合关系进行设计,可以多种设计模式组合,不同的部分在进行单独封装继承。不清楚楼主各功能之间的关系,所以也就不能明确设计方式了
解决方案四:
一般来说,相同功能的卡板一个进行整合,通过装饰者模式提供统一接口,其实现使用代理模式可能会好一点,这个会减少耦合几率,
解决方案五:
模板+代理+桥接+工厂
时间: 2024-08-04 12:14:48