在不同的平台下,我需要定义一个函数,of
,其作用是在命令行下用系统定义的图形程序打开某个文件或URL。
比如,of .
在Windows平台下应该用Explorer打开当前目录,而在Linux平台下应该用nautilus打开当前目录。
我需要一个工厂虚类,其实就是文件。在linux下,这个工厂有一个实类,同时也有一个对象,那就是我的.bashrc-linux;而在Windows下呢,那就是我的.bashrc-windows。哦,不好意思,我在Windows下在用的是Cygwin。所以也可以使用bash。
在.bashrc-linux这个工厂里,我们这样创建of
:
function of() {
gnome-open "$@" > /dev/null 2>&1
}
而在.bashrc-windows这个工厂里,我们这样创建of
:
function of() {
gnome-open "$@" > /dev/null 2>&1
}
在.bashrc里,我们这样决定要用哪个工厂:
if test `uname` = Linux; then
factory=~/.bashrc-linux
else
factory=~/.bashrc-windows
fi
然后,我们让工厂去创建我们想要的对象:
. $factory
哈哈,设计模式有何难哉!
Leave a comment