PureBasic

Forums PureBasic
Nous sommes le Jeu 18/Oct/2018 21:40

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Class maker
MessagePosté: Dim 05/Nov/2017 12:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1541
Localisation: Belgique
Je ne veux pas une fois de plus lancer la polémique, mais j'adore la Poo et j'adore Pb. Bien que j'utilise d'autre langages mieux adaptés à la Poo tel-que java ou c++, j'aime quand même le résultat que donne Pb (pas de frawework, un exe rapide et de petite taille). Mais ce dernier n'étant pas adapté à la Poo demande beaucoup de travaille pour implémentés les classes.
J'ai donc commencer le développement d'un petit soft qui va faire cela à ma place. Et partage ce dernier

Remarque:
Le code obtenu respecte les normes Poo au point de vue d'encapsulation, il ne gère ni l'héritage ni le polymorphisme. Pour tirer pleinement parti des ce petit logiciel, il est préférable de faire une analyse du projet de type "uml" pour ainsi concevoir la structure de toutes les classes et méthodes.

:arrow: current version: BETA 1.1 Dowload

:?: GITHUB
Voici ce qu'il fait

Image

Exemple de code obtenu
Code:
Interface Country
   getName.s()
   getId.i()
   setName(name.s)
   setId(id.i)
   free()
   teste(name.s)

EndInterface


Code:
DeclareModule Country
  Declare new(name.s,id.i)
EndDeclareModule
Module Country
  ;-* PRIVATE MEMBERS
  Structure _country
      *Country_METHODS
      name.s
      id.i
  EndStructure
  ;}
   ;-* GETTERS
   Procedure.s getName(*this._country)
      With *this
         ProcedureReturn \name
      EndWith
   EndProcedure

   Procedure.i getId(*this._country)
      With *this
         ProcedureReturn \id
      EndWith
   EndProcedure

   ;}
   ;-* SETTERS
   Procedure setName(*this._country,name.s)
      With *this
         ;TO DO: write your code here to verify the attribute
         \name=name
         ProcedureReturn #True
      EndWith
   EndProcedure

   Procedure setId(*this._country,id.i)
      With *this
         ;TO DO: write your code here to verify the attribute
         \id=id
         ProcedureReturn #True
      EndWith
   EndProcedure

   ;}
   ;-* CONSTRUCTOR
   Procedure new(name.s,id.i)
      Protected *this._country = AllocateStructure(_country)
      With *this
         If Not setName(name) : ProcedureReturn #False : EndIf
         If Not setId(id) : ProcedureReturn #False : EndIf
         \Country_METHODS = ?METHODS
         ProcedureReturn *this
      EndWith
   EndProcedure
   ;}

   ;-* DESTRUCTOR
   Procedure free(*this._country)
      ClearStructure(@_country,*this)
   EndProcedure
   ;}

   ;-* PUBLIC METHODS
   Procedure teste(*this._country,name.s)
      ; TO DO: write your code here
   EndProcedure

   ;}

   DataSection
      METHODS:
      Data.i @getName()
      Data.i @getId()

      Data.i @setName()
      Data.i @setId()

      Data.i @teste()
   EndDataSection
EndModule

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Dernière édition par microdevweb le Lun 06/Nov/2017 14:41, édité 5 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Class maker
MessagePosté: Dim 05/Nov/2017 12:26 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6552
Localisation: Isere
Tout ce qui peut nous aider un jour à utiliser la POO (qui pour certains de nous est un monde inconnu) si le besoin ou l'envie se faisait sentir, est le bienvenu. :wink:

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Class maker
MessagePosté: Lun 06/Nov/2017 12:53 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1541
Localisation: Belgique
La bêta 1 est en ligne

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Class maker
MessagePosté: Lun 06/Nov/2017 19:37 
Hors ligne

Inscription: Mer 21/Jan/2004 18:24
Messages: 1529
à essayer plus longuement, mais ça à l'air de marcher.
Code:
[{"myMembers":[],"myMethods":[{"valReturned":1,"codeToInclude":"","name":"Demarrer","note":"","myAttributs":[]},{"valReturned":1,"codeToInclude":"","name":"Debrayer","note":"","myAttributs":[]},{"valReturned":1,"codeToInclude":"","name":"Manoeuvrer_levier_vitesse","note":"","myAttributs":[]}],"name":"voiture","pointeur":0,"note":""}]


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye