如果感觉需要太多的单例或者全局对象来支持时,此时应该如何改变设计策略呢当一个系统中有很多的单一资源,
如果感觉需要太多的单例或者全局对象来支持时,此时应该如何改变设计策略呢
当一个系统中有很多的单一资源,如何配置,独占的串口,等等看似单独且唯一的资源需要操作和控制的时候,这个时候似乎就需要对应的增加需要全局对象(或者好一点改为单例)。
但是一个系统充满着全局对象(即便是单例)也总是让人觉得有点怪异;
不知各位在遇到这样的问题的时候是什么思路呢?
[解决办法]
能不能把全局变量都放在一个命名空间中呢
[解决办法]
如果是文件内全局的话,就加上static。
把那些全局对象放到命名空间中。
另外,为什么会有很多单一资源
[解决办法]
个人觉得如果系统中有太多的单例或全局对象,主要是没有划分子系统,而各个模块之间通过单例或者全局对象去访问,这种情况在多线程加锁开销非常大,建议将整个系统模块化,在各个模块之间通过消息传递,命令模式,或者组合,代理模式处理请求,在子系统中可以用单例模式
[解决办法]
楼主的问题是系统控制抽象的缺失,而不是其它。
你这些设计模式来,设计模式去,只会把问题越搞越乱。
[解决办法]
所有的资源的创建、获取、销毁都一定有一个owner。如果没有的其它更合适的话,那它就是系统控制抽象来负责的。
[解决办法]
你系统中的全局对象和单例对象太多,主要是为了各个类或者函数或模块之间能共享访问?
如果是这样你根本没有划分子系统,耦合性太高,也就是没有模块分离,类抽象,对象粒度划分等问题
简单的解决:
将全局对象抽象出基类,所有用到了全局对象的类可以继承也可以组合,视具体情况
对象太多可以抽象模板工厂产生对象,全局唯一性的用单例模式
[解决办法]
做个common类专门放置
[解决办法]
串口由一个单独的模块负责吧。
