java:packages:naming

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

java:packages:naming [2015/02/18 13:48]
gthanos
java:packages:naming [2016/02/26 11:15]
Line 1: Line 1:
-====== Ονοματοδοσία πακέτων ====== 
- 
-Καθώς πολλοί προγραμματιστές φτιάχνουν κλάσεις για διάφορά προγράμματα είναι πολύ πιθανόν ότι τα ονόματα των κλάσεων πολλές φορές συμπίπτουν. Προκειμένου να αποφύγουμε συγκρούσεις ονοματοδοσίας (naming conflicts) μεταξύ κλάσεων,​ το πλήρες όνομα της κλάσης αποτελείται από το όνομα του πακέτου και το όνομα της κλάσης. Για παράδειγμα αν το όνομα του πακέτου σας είναι ''​bicycles''​ και το όνομα της κλάσης σας είναι ''​MountainBike'',​ τότε το πλήρες όνομα της κλάσης σας είναι ''​bicycles.MountainBike''​. Με αυτόν τον τρόπο η δική σας κλάση διαφέρει από την κλάση MountainBike που υλοποιεί κάποιος άλλος προγραμματιστής και πιθανόν την έχει τοποθετήσει σε ένα πακέτο με όνομα ''​equipment''​. ​ 
- 
-Παρά το γεγονός ότι το όνομα του πακέτου αποτελεί επιπλέον χαρακτηριστικό,​ δεν μπορούμε να αποκλείσουμε τα δύο πακέτα στα οποία ανήκει η κλάση με το όνομα ''​MountainBike''​ να έχουν το ίδιο όνομα. Για να αποφύγουμε και αυτές τις συγκρούσεις ονοματοδοσίας υιοθετούμε τους παρακάτω κανόνες. 
-  - Τα ονόματα των πακέτων χρησιμοποιούν πάντοντε μικρά γράμματα. Αν ένα όνομα έχει περισσότερα του ενός συνθετικά αυτά χωρίζονται μεταξύ τους με τελεία '​.'​. 
-  - Τα πακέτα που δημιουργούνται μέσα σε έναν οργανισμό ή εταιρία χρησιμοποιούν το ανεστραμμένο όνομα (reverse DNS) που διατηρεί ο οργανισμός ή η εταιρία στο internet. ​ 
-  - Μια καλή πρακτική είναι εκτός από το όνομα του οργανισμού να χρησιμοποιείται και το όνομα του project ή το όνομα κάποιου άλλου χαρακτηριστικού (π.χ. μάθημα στο πλαίσιο του οποίου γράφτηκε το project ή οργανωτική μονάδα στην οποία υπόκειται το project μέσα σε μία εταιρία κλπ). 
-  - Εάν δύο πακέτα μέσα σε ένα οργανισμό έχουν το ίδιο όνομα, τότε η σύγκρουση ονοματοδοσίας θα πρέπει να επιλυθεί μέσα στον οργανισμό. 
- 
-Παρακάτω δίνονται κάποια παραδείγματα πακέτων (packages), με βάση τα domain names των οργανισμών. 
- 
-^ Όνομα project και οργανισμός ^ Package name ^ 
-| homework 1 στο CE325 στο τμήμα inf.uth.gr | gr.uth.inf.ce325.homework1 | 
-| project-name.company.com ​ | com.company.project-name.package-name ​     | 
-| hyphenated-name.example.org | org.example.hyphenated_name | 
-| 123name.example.com | com.example._123name | 
- 
-Παρατηρήστε ότι στα ονόματα των παραπάνω πακέτων μοιάζει να υπάρχει ιεραρχία. Για παράδειγμα,​ θα μπορούσε να πει κάνεις ότι το πακέτο ​ 
-<​code>​ 
-gr.uth.inf.ce325.homework1.shapes 
-</​code>​ 
-βρίσκεται κάτω από το πακέτο ​ 
-<​code>​ 
-gr.uth.inf.ce325.homework1 
-</​code>​ 
-και υπό αυτή την έννοια αποτελεί υπο-πακέτο αυτού. Στην πραγματικότητα ιεραρχικές σχέσεις μεταξύ των πακέτων δεν υφίστανται στη Java. Τα πακέτα ​ 
- 
-<​code>​ 
-gr.uth.inf.ce325.homework1 
-gr.uth.inf.ce325.homework1.shapes 
-</​code>​ 
- 
-**ΔΕΝ συνδέονται μεταξύ τους** για τον compiler στην Java.  
- 
-|Προηγούμενο:​ [[ :​java:​packages:​intro | Πακέτα στη γλώσσα προγραμματισμού Java ]] | Επόμενο:​ [[ :​java:​packages:​using | Χρήση πακέτων ]]| 
- 
- 
- 
  
java/packages/naming.txt · Last modified: 2016/02/26 11:15 (external edit)