【发布时间】:2012-05-18 04:51:47
【问题描述】:
我有一个 3D 动画,我想输出为不同的文件格式,例如 .BVH、.FBX...
适合实现这种功能的设计模式是什么?
工厂设计模式行得通吗?为什么和为什么不。
谢谢
【问题讨论】:
-
看到这个帖子:stackoverflow.com/questions/1236667/object-conversion-pattern我想它可以帮助你:)
我有一个 3D 动画,我想输出为不同的文件格式,例如 .BVH、.FBX...
适合实现这种功能的设计模式是什么?
工厂设计模式行得通吗?为什么和为什么不。
谢谢
【问题讨论】:
我认为重要的是设计而不是图案名称。我认为您需要的是一种适配器:
public interface IAnimationFormat {
void Save(Animation animation);
}
public class Bvh : IAnimationFormat {
public void Save(Animation animation){
...
}
}
public class Fbx : IAnimationFormat {
public void Save(Animation animation){
...
}
}
您还可以添加 Load 方法和东西。
【讨论】:
它既不是 Builder 也不是 Factory。它看起来像Strategy pattern。
【讨论】:
对于这种情况,您应该考虑 Builder 和 Factory 模式。
【讨论】:
我会使用观察者模式。假设您有可观察的 A 类和观察者 C 和 D 类。 单击 A、raise 和 event 上的 SAVE 以通知 B、C、......任何更多的观察者执行 SAVE 操作。
【讨论】: