2009-10-16 3 views
0

J'essaye d'automatiser une application DOS vraiment ancienne. J'ai décidé que la meilleure façon de le faire est via input redirection. L'application héritée (menu piloté) a de nombreuses tâches dans les tâches avec une logique de branchement. Afin de facilement comprendre et réutiliser l'entrée pour ces tâches, je voudrais les diviser en morceaux de taille. Puisque je devrai commencer une nouvelle application à chaque passage, répéter un contexte pour en consommer un peu pourrait être désordonné.Conception pour répartir le travail lors de la génération d'une entrée orientée tâche pour une application DOS traditionnelle?

Je voudrais créer un modèle d'objet:

  • me permet de me concentrer sur la tâche à accomplir
  • me permet de réutiliser des tâches communes de différents points de départ
  • me empêche d'appeler une tâche du mauvais point de départ

Pour être plus explicite, étant donné que j'ai la hiérarchie des tâches suivantes:

START 
A 
    A1 
    A1a 
    A1b 
    A2 
    A2a 
B 
    B1 
    B1a  

Je voudrais un modèle d'objet qui me permet de générer un fichier d'entrée pour la tâche "A1b" acheter en utilisant des blocs de construction comme:

START -> do_A, do_A1, do_A1b 

mais me empêche de:

START -> do_A1 // because I'm assuming a different call chain from above 

Cette m'aidera à écrire "do_A1b" parce que je peux toujours supposer le même contexte de départ et simplifier l'écriture "do_A1a" parce qu'il a le même contexte de départ. Quels modèles vont m'aider ici? J'utilise Ruby pour le moment, donc si les fonctionnalités de langage dynamique peuvent aider, je suis un jeu.

+0

Après avoir obtenu une solution réalisable. Je voudrais démonter le programme, et le réécrire. –

Répondre

0

EDIT: après avoir relu votre question, j'ai réalisé que je l'avais mal compris. Laissez-moi répondre à ce que vous avez réellement demandé ...

Je voudrais créer une hiérarchie de classes. Les plus simples auraient des fonctions comme «faire la tâche A1b» qui produiraient les étapes appropriées pour accomplir ceci. En plus de cela, je voudrais construire des fonctions qui appellent les sous-tâches dans des ordres spécifiques pour atteindre des objectifs spécifiques. Prétendre VIM était le programme contrôlé, les tâches de premier niveau seraient des choses comme 'Entrer en mode insertion' 'Entrer en mode commande' 'écrire le fichier' ou 'entrer cet ensemble arbitraire d'entrées'. En plus de cela, je construirais des fonctions telles que «insérer» foobar «dans le fichier ouvert au début de la ligne 5», ce qui appelait les tâches de niveau inférieur.

Questions connexes