我是这样的类图:
k=5
kk=$(awk "BEGIN{print 1/$k}")
ffmpeg \
-i $src_video_path \
-an \
-loglevel error \
-filter_complex \
"setpts=$kk*PTS, \
scale=w=2*trunc(128*max(1\, iw/ih)):h=2*trunc(128*max(1\, ih/iw))[m]; \
[m]select=n=$k:e=(mod(n\,$k)+1)*lt(n\,$max_frames) \
$(for ((i=1; i<=$k; i++)); do
echo -n "[a$i]"
done)" \
$(for ((i=1; i<$k; i++)); do
echo -n "-r $fps -map [a$i] $dst_video_path/$i.mp4 "
done
echo -n "-r $fps -map [a$k] $val_video_path/$k.mp4"
)
TopClass
◆ ◆
| |
SubClass1 SubClass2
◆ ◆
| |
| ChildClass2
|
ChildClass1
有TopClass
和SubClass1
。
SubClass2
有Subclass1
和ChildClass1
。
我在每个类上使用依赖注入。因此,当ChildClass2
需要界面ChildClass1
时,我需要通过X
至X
和TopClass
。当Subclass1
需要ChildClass2
时,我还需要通过整个层次结构传递它。最终我得到Y
完全依赖于它实际上没有使用的接口。我发现它很臭。
我发现article about facade pattern似乎很有希望,但最终我找不到在我的情况下使用它的方法。
还有其他想法吗?我不想使用单例或任何类似的解决方案,因为我需要能够轻松地对这些类进行单元测试。
修改
我刚刚找到的另一个选项,我将要测试一段时间是boost.DI: