Módulos certos e acoplamento

Ir em baixo

Certo Módulos certos e acoplamento

Mensagem por Psy em Seg Nov 26, 2012 5:15 pm



    Módulos Básicos e Acoplamento


     


    Foi construida uma unidade seguindo as normas da orientação para objetos chamada USE. (Unidade de Sistema Especialista) Nesta unidade não é declarada nenhuma variável global ou local nem foi instanciada nenhuma classe. Estruturas de memória são todas locais e declaradas em métodos sendo sua vida limitada à execução de cada método.


     


    A classe normalmente instanciada em uma aplicação que use a unidade USE é a classe TMotorCmd. TMotorCmd pode executar todos os comandos descritos no manual do usuário.


     


    TMotorCmd é descendente de TMotorStr que é descendente TMotor.


     


    TMotor é uma classe que incorpora um sistema especialista em que as regras são conjuntos de words e os fatos são representados por words. Vale observar que a comunicação com pessoas usando words é no mínimo constrangedora. Para este fim, foram construidas duas camadas (cascas implementadas como classes descendentes) permitindo uma comunicação por strings de caracteres.


     


    Segue a declaração da classe TMotor:


    type TMotor = object  { motor que trabalha com words }
    BRegras:TBaseRegras;
    BFatos:TBaseFatos;
    OnFindFact:TOnFindFact;

    constructor Init(POnFindFact:TOnFindFact);
    destructor Done;
    procedure SetaFato(F:TFato);
    function EFato(F:TFato):boolean;
    { testa fato }
    procedure Run;
    procedure AddRegra(R:TRegra);
    { adiciona uma regra }
    end;

    Segue a declaração da classe TMotorStr:

    type TMotorStr = object (TMotor) { motor com casca para
    strings }
    SW:TIntStr; { converte strings em words }

    constructor Init(POnFindFact:TOnFindFact);
    destructor Done;
    procedure SetaFatoStr(FS:string);
    function EFatoStr(FS:string):boolean;
    procedure AddRegraStr(RS:string);
    function GetRegraStr(R:TRegra):string;
    { transforma TRegra em String }
    end;

    Segue a declaração da classe TMotorCMD:


    type TMotorCmd = object (TMotorStr)
    { motor por linha de comando }
    function ExecCmd(S:string):boolean;
    { executa um comando }

    function LoadFromFile(FileName:string):boolean;
    { le um arquivo de comandos }
    end;


    Em camadas:












    TmotorCmd


    TmotorStr


    Tmotor


    Base de Fatos e Base de Regras




avatar
Psy
Administrador
Administrador

Posts Posts : 35
Localização : Em frente do PC

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum