基类是一个操作系统类
代码
package os; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(temp);
sub getDF{}
sub temp{ my $this = shift; print $this->getDF(); print "\n"; }
sub new{ my $class =shift; my $this = {}; bless $this,$class; return $this; }
1;
两个子类分别是sunos和hpos
代码
package hpos; require Exporter; require os; @ISA = qw(Exporter os); @EXPORT= qw();
my %cmd =( 'df' => 'bdf -l', 'ps' => 'ps -efx' );
sub getDF{ return $cmd{'df'}; }
sub new{ my $class =shift; my $this = os->new(); bless $this,$class; return $this; }
代码
package sunos; require Exporter; require os; @ISA = qw(Exporter os); @EXPORT= qw();
my %cmd =( 'df' => 'df -kl', 'ps' => 'ps -ef' );
sub getDF{ return $cmd{'df'}; }
sub new{ my $class =shift; my $this = os->new(); bless $this,$class; return $this; }
1;
对象创建工厂
package factory;
sub createOS{ my $self=shift; my $os = shift; return new sunos if ($os eq 'sun'); return new hpos if ($os eq 'hp'); }
sub createDB{ } 1;
客户端程序
#!/usr/bin/perl push(@INC,`pwd`); use sunos; use hpos; use factory; $os = factory->createOS('hp'); $os ->temp();
$os = factory->createOS('sun'); $os->temp();
|
请发表评论