Els paquets fills en Ada són una característica poderosa que permet l'organització jeràrquica del codi. Aquesta estructura facilita la modularitat i la reutilització del codi, permetent que els desenvolupadors divideixin grans sistemes en components més petits i manejables.
Conceptes Clau
-
Paquet Pare i Paquet Fill:
- Un paquet fill és un paquet que es defineix com a part d'un altre paquet, anomenat paquet pare.
- Els paquets fills poden accedir als elements visibles del paquet pare.
-
Visibilitat:
- Els paquets fills tenen accés a les entitats visibles del paquet pare, però no a les entitats privades.
- Els paquets fills poden declarar les seves pròpies entitats visibles i privades.
-
Organització Jeràrquica:
- Els paquets fills permeten una organització jeràrquica del codi, facilitant la gestió de projectes grans.
Estructura d'un Paquet Fill
Definició del Paquet Pare
package Parent_Package is -- Declaracions visibles procedure Parent_Procedure; private -- Declaracions privades X : Integer := 0; end Parent_Package;
Definició del Paquet Fill
package Parent_Package.Child_Package is -- Declaracions visibles del paquet fill procedure Child_Procedure; end Parent_Package.Child_Package;
Implementació del Paquet Pare
package body Parent_Package is procedure Parent_Procedure is begin -- Implementació de Parent_Procedure end Parent_Procedure; end Parent_Package;
Implementació del Paquet Fill
package body Parent_Package.Child_Package is procedure Child_Procedure is begin -- Implementació de Child_Procedure -- Pot accedir a Parent_Procedure però no a X Parent_Procedure; end Child_Procedure; end Parent_Package.Child_Package;
Exemple Pràctic
Paquet Pare: Library
package Library is procedure Add_Book (Title : String); procedure Remove_Book (Title : String); private type Book is record Title : String (1 .. 100); Author : String (1 .. 100); end record; Books : array (1 .. 100) of Book; Book_Count : Integer := 0; end Library;
Paquet Fill: Library.Catalog
Implementació del Paquet Pare
package body Library is procedure Add_Book (Title : String) is begin if Book_Count < 100 then Book_Count := Book_Count + 1; Books(Book_Count).Title := Title; end if; end Add_Book; procedure Remove_Book (Title : String) is begin -- Implementació per eliminar un llibre end Remove_Book; end Library;
Implementació del Paquet Fill
package body Library.Catalog is procedure List_Books is begin for I in 1 .. Book_Count loop Ada.Text_IO.Put_Line(Books(I).Title); end loop; end List_Books; end Library.Catalog;
Exercicis Pràctics
Exercici 1: Crear un Paquet Fill
- Objectiu: Crear un paquet fill que afegeixi funcionalitat a un paquet pare existent.
- Descripció:
- Defineix un paquet pare
Math_Operations
amb una funcióAdd
. - Defineix un paquet fill
Math_Operations.Advanced
amb una funcióMultiply
.
- Defineix un paquet pare
Solució
Paquet Pare: Math_Operations
Implementació del Paquet Pare
package body Math_Operations is function Add (A, B : Integer) return Integer is begin return A + B; end Add; end Math_Operations;
Paquet Fill: Math_Operations.Advanced
package Math_Operations.Advanced is function Multiply (A, B : Integer) return Integer; end Math_Operations.Advanced;
Implementació del Paquet Fill
package body Math_Operations.Advanced is function Multiply (A, B : Integer) return Integer is begin return A * B; end Multiply; end Math_Operations.Advanced;
Exercici 2: Utilitzar Paquets Fills
- Objectiu: Utilitzar un paquet fill en un programa principal.
- Descripció:
- Utilitza el paquet
Math_Operations
i el seu paquet fillMath_Operations.Advanced
per realitzar operacions matemàtiques en un programa principal.
- Utilitza el paquet
Solució
Programa Principal
with Ada.Text_IO; use Ada.Text_IO; with Math_Operations; with Math_Operations.Advanced; procedure Main is A, B : Integer := 5; Sum, Product : Integer; begin Sum := Math_Operations.Add(A, B); Product := Math_Operations.Advanced.Multiply(A, B); Put_Line("Sum: " & Integer'Image(Sum)); Put_Line("Product: " & Integer'Image(Product)); end Main;
Conclusió
Els paquets fills en Ada permeten una organització jeràrquica i modular del codi, facilitant la gestió de projectes grans i complexos. Amb la pràctica, els programadors poden utilitzar aquesta característica per crear sistemes més estructurats i mantenibles.
Curs de Programació en Ada
Mòdul 1: Introducció a Ada
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Estructures de Control
- Bucles en Ada
- Subprogrames: Procediments i Funcions
Mòdul 3: Tipus de Dades Avançats
Mòdul 4: Programació Modular
Mòdul 5: Concurrència i Programació en Temps Real
Mòdul 6: Temes Avançats
Mòdul 7: Millors Pràctiques i Optimització
- Estil de Codi i Millors Pràctiques
- Depuració i Proves
- Optimització del Rendiment
- Consideracions de Seguretat