zoukankan      html  css  js  c++  java
  • 一个perl的面向对象编程例子

    基类是一个操作系统类

    代码
    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();
  • 相关阅读:
    string的sizeof
    计算程序运行时间
    sleep所在头文件
    Mysql复制表结构、表数据
    UIView属性
    UITextView
    UITextField属性
    UISwitch属性
    UISlide属性
    UISegment属性
  • 原文地址:https://www.cnblogs.com/itfriend/p/1788101.html
Copyright © 2011-2022 走看看