Διαδρομές
/
C#
C#
/
Ασκήσεις
/
Κόκκινο εναντίον Μπλε: Στυλ Δαρβίνου
Κόκκινο εναντίον Μπλε: Στυλ Δαρβίνου

Κόκκινο εναντίον Μπλε: Στυλ Δαρβίνου

Άσκηση εκμάθησης

Εισαγωγή

Χώροι ονομάτων

Οι χώροι ονομάτων είναι ένας τρόπος να ομαδοποιείς κώδικα που σχετίζεται και να αποφεύγεις τις συγκρούσεις ονομάτων, και υπάρχουν γενικά σε κάθε κώδικα, εκτός από τις πιο τετριμμένες περιπτώσεις.

Η σύνταξη είναι η εξής:

namespace MyNameSpace
{
    public class MyClass {}

    public class OtherClass {}
}

Οι τύποι που περικλείονται σε χώρους ονομάτων αναφέρονται έξω από το πεδίο του χώρου ονομάτων βάζοντας μπροστά στο όνομα του τύπου τη σύνταξη με τελεία. Εναλλακτικά, και πιο συνηθισμένα, μπορείς να τοποθετήσεις μια οδηγία using στην αρχή του αρχείου (ή μέσα σε έναν χώρο ονομάτων) και ο τύπος μπορεί να χρησιμοποιηθεί χωρίς το πρόθεμα. Μέσα στον ίδιο χώρο ονομάτων δε χρειάζεται να προσδιορίσεις τα ονόματα των τύπων.

namespace MySpace
{
    public class MyClass {}

    public class Foo
    {
        public void Bar()
        {
            var baz = new MyClass();
        }
    }
}

public class Qux
{
    public void Box()
    {
        var nux = new MySpace.MyClass();
    }
}

namespace OtherSpace
{
    using MySpace;

    public class Tix
    {
        public void Jeg()
        {
            var lor = new MyClass();
        }
    }
}

Μπορείς να δώσεις ένα ψευδώνυμο σε έναν χώρο ονομάτων με τη σύνταξη using MyAlias = MySpace; και μετά να χρησιμοποιήσεις το ψευδώνυμο οπουδήποτε θα μπορούσε να χρησιμοποιηθεί ο χώρος ονομάτων.

Οδηγίες

Η διοίκηση άρχισε να εφαρμόζει αρχές του Δαρβίνου στο έργο Remote Control Car remote-control-competition. Οι προγραμματιστές έχουν χωριστεί σε δύο ομάδες, τις Red και Blue, και τους έχει ανατεθεί να βελτιώσουν τον σχεδιασμό ανεξάρτητα η μία από την άλλη. Δε χρειάζεται να ασχοληθούν με τις αποφάσεις σχεδιασμού της άλλης ομάδας.

Σου έχει ζητηθεί να ρίξεις μια ματιά στον κώδικα και να δεις πώς μπορείς να συνδυάσεις καλύτερα τις δύο προσπάθειες για λόγους δοκιμών.

1. Βρες έναν πιο κατάλληλο τρόπο να απομονώσεις τον κώδικα των δύο ομάδων

Χρησιμοποίησε namespaces για να εκφράσεις καλύτερα την πρόθεση του κώδικα.

Αυτή τη στιγμή, σημαντικοί τύποι όπως οι Motor και Telemetry, για να μην αναφέρουμε την ίδια την RemoteControlCar, είναι εμφωλευμένοι μέσα σε μια εξωτερική στατική κλάση, την <Color>RemoteControlCarTeam. Ο μοναδικός σκοπός της εξωτερικής κλάσης είναι να επιτρέψει σε τύπους με το ίδιο όνομα να συνυπάρχουν στο πρόγραμμα. Αυτό εκφράζεται καλύτερα με τη χρήση ενός namespace. Θα δεις στην επόμενη άσκηση ότι, για αυτούς τους σκοπούς, ένα namespace έχει πλεονεκτήματα έναντι μιας static class.

2. Απλοποίησε το σύστημα ονοματοδοσίας

Ενώ η διοίκηση επιμένει ότι οι ομάδες πρέπει να ονομάζονται RedRemoteControlCarTeam και BlueRemoteControlCarTeam στους ορισμούς, τα ονόματα είναι αρκετά δυσκίνητα όταν αναφέρεσαι στις ομάδες. Βρες έναν τρόπο να χρησιμοποιήσεις τα συντομότερα αναγνωριστικά Red και Blue όταν κατασκευάζεις τα αυτοκίνητα.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Κόκκινο εναντίον Μπλε: Στυλ Δαρβίνου;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.