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_Operationsamb una funcióAdd. - Defineix un paquet fill
Math_Operations.Advancedamb 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_Operationsi el seu paquet fillMath_Operations.Advancedper 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
