Page 1 sur 1

Class maker

Publié : dim. 05/nov./2017 12:00
par microdevweb
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 : Tout sélectionner

Interface Country
	getName.s()
	getId.i()
	setName(name.s)
	setId(id.i)
	free()
	teste(name.s)

EndInterface

Code : Tout sélectionner

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

Re: Class maker

Publié : dim. 05/nov./2017 12:26
par Kwai chang caine
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:

Re: Class maker

Publié : lun. 06/nov./2017 12:53
par microdevweb
La bêta 1 est en ligne

Re: Class maker

Publié : lun. 06/nov./2017 19:37
par Patrick88
à essayer plus longuement, mais ça à l'air de marcher.

Code : Tout sélectionner

[{"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":""}]