有人知道软件更新的任何设计模式吗?具体来说,我想要一个将旧文件/设置转换为最新版本的模式.
我能想到的最好的解决方案是有一套关于如何从每个版本转换到下一个版本的规则(例如v1.0到v1.1,v1.1到v1.2,......).然后,要将文件/设置转换为最新版本,您将按顺序运行所有转换规则.
这并不是一种非常优雅的做事方式 - 有更好的方法吗?
(对于上下文,我正处于Win8 Metro应用程序的早期规划/设计阶段)
提前致谢
我正在调查麦克风的频率响应.
为了帮助分析它们,我编写了一个程序,它将输出:到达角度,频率(Hz)和给定角度和频率(dB)的响应.
我写了一个gnuplot脚本,将所有这些数据绘制成一个三维图形:

gnuplot的代码是:
set xlabel "Arrival Angle (degrees)" font "arial,8"
set ylabel "Frequency (Hz)" font "arial,8"
set zlabel "Gain (dB)" font "arial,8"
set grid lc rgbcolor "#BBBBBB"
set xrange[-180:180]
set yrange[0:20000]
set zrange[-60:0]
unset key
set view 30,56,0.98
splot 'freq.dat' u 1:2:3 with pm3d
Run Code Online (Sandbox Code Playgroud)
我知道这有点不寻常,但我想做的是,在一个三维极坐标图上代表这一点,但我无法弄清楚如何去做.下面的(糟糕)绘图显示了我一直试图实现的那种东西:
任何人都能指出我正确的方向吗?
提前致谢.戴夫.
我一直在玩,并创建了一个更新的脚本:
reset
set title "3D version using cylindrical coordinate system"
set ticslevel 0.0
set view 30,56,0.98
set angles degrees
set mapping cylindrical
set parametric
set zrange[-60:0]
unset key
splot 'freqResp.dat' u …Run Code Online (Sandbox Code Playgroud) 如何在Makefile中为不同的源文件使用不同的编译器标志?例如,我想要一个Makefile来生成:
g++ -c -COMPILER_FLAGS_1 -g source1.cpp -o source1.o
g++ -c -COMPILER_FLAGS_2 -g source2.cpp -o source2.o
g++ -c -COMPILER_FLAGS_2 -g source3.cpp -o source3.o
g++ -c -COMPILER_FLAGS_2 -g source4.cpp -o source4.o
g++ -c -COMPILER_FLAGS_3 -g source5.cpp -o source5.o
g++ -c -COMPILER_FLAGS_3 -g source6.cpp -o source6.o
g++ -c -COMPILER_FLAGS_3 -g source7.cpp -o source7.o
g++ -g -o output source1.o source2.o source3.o source4.o source5.o source6.o source7.o
Run Code Online (Sandbox Code Playgroud)
目前我有大约20个源文件(并且预计会增长),因此易于维护的文件会很好.
提前致谢.
我在Ada中有一个包含程序和功能的简单包.我想把所有的功能和程序都放在受保护的类型中.
例如,对于一个简单的.adb文件
package body Pack is
procedure procedure1 (B : in out Integer) is
begin
B := new Integer;
end procedure1;
procedure procedure2 (B: in out Integer) is
begin
B.Cont(B.First-1) := 1;
end procedure2;
function procedure3 (B : Integer) return Boolean is
begin
return B.First = B.Last;
end procedure3;
end pack;
Run Code Online (Sandbox Code Playgroud)
或者简单的.ads
package body Pack is
procedure procedure1 (B : in out Integer);
procedure procedure2 (B: in out Integer);
function procedure3 (B : Integer) return Boolean;
end pack;
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?