[问题] 不同执行绪 读到不同资料

楼主: autumnk (3O6p)   2016-03-13 17:09:34
因为原本就使用在设计模式下的架构
在抽象类别的地方使用了蛮多的static
来当作是类似全域变量的功能
(就是所有继承抽象的class,抓取相同的变量来动作)
但是现在需要使用多执行绪,来实现不同的功能
每个执行绪会包相同的设计模式的架构
但是不同的执行绪
设计模式内部的资料是要不一样的
请问这有什么好办法解决吗
不知道有没有人看得懂我在问什么.....
作者: m339606 (mize)   2016-03-13 18:19:00
不明白
作者: ssccg (23)   2016-03-13 19:01:00
不懂为什么在不同class要共用的变量却在不同thread不共用..感觉一般设计上要两套一样的会是生两套instance,不会是同一套然后写成static,再用thread去拆两套..也许当初用static共用而不是用DI注入同一个变量就错了不过还是回你的问题,不同thread各一份可以用ThreadLocal
作者: GoalBased (Artificail Intelligence)   2016-03-13 19:27:00
为了设计模式而设计模式吧..
作者: Litfal (Litfal)   2016-03-14 02:39:00
设计模式下的架构怎么会常用static...只有简单工厂明显用到吧。喔,还有独体模式然后你抽象类大量用到外部变量(也就是你写成static的)就要认真考虑一下你的OOAD是不是有问题...我猜你的static里面放的是config参数,请把他们的static去掉,做成instance,然后用独体模式来存取。然后你不同执行续使用不同config的需求,只需要使用不同的config instance,其他部分应该几乎不用改独体模式是指你平常使用,实际上还是用instance而不是static field, 多执行续只需要改成各自new instance就好

Links booklink

Contact Us: admin [ a t ] ucptt.com