Single Responsibility Principle(SRP)
Αυτή η αρχή ορίζει ότι κάθε τάξη πρέπει να έχει μια ενιαία ευθύνη. Τονίζει ότι μια κλάση πρέπει να εκτελεί μια συγκεκριμένη λειτουργία και να μην έχει πάρα πολλούς λόγους να αλλάξει.
Παράδειγμα: Διαχείριση πληροφοριών χρήστη και αποστολή ειδοποιήσεων μέσω email.
class UserManager
def create_user(user_data)
# Logic for creating a user
end
end
class EmailService
def send_email(email_data)
# Logic for sending an email
end
end
Open/Closed Principle(OCP)
Αυτή η αρχή ενθαρρύνει την επέκταση της λειτουργικότητας με την προσθήκη νέου κώδικα αντί της τροποποίησης του υπάρχοντος κώδικα.
Παράδειγμα: Χειρισμός διαφορετικών μεθόδων πληρωμής σε μια εφαρμογή ηλεκτρονικού εμπορίου.
class PaymentProcessor
def process_payment
# Common logic for payment processing
end
end
class CreditCardPaymentProcessor < PaymentProcessor
def process_payment
# Logic for processing credit card payment
end
end
class PayPalPaymentProcessor < PaymentProcessor
def process_payment
# Logic for processing PayPal payment
end
end
Liskov Substitution Principle(LSP)
Αυτή η αρχή υποστηρίζει ότι τα αντικείμενα μιας παραγόμενης κλάσης θα πρέπει να μπορούν να αντικατασταθούν με αντικείμενα της βασικής κλάσης χωρίς να επηρεάζεται η ορθότητα του προγράμματος.
Παράδειγμα: Διαχείριση γεωμετρικών σχημάτων.
class Shape
def area
# Common logic for calculating area
end
end
class Rectangle < Shape
def area
# Logic for calculating area of rectangle
end
end
class Square < Shape
def area
# Logic for calculating area of square
end
end
Interface Segregation Principle(ISP)
Αυτή η αρχή συμβουλεύει να σπάσουμε τις διεπαφές σε μικρότερες για να αποφευχθεί ο εξαναγκασμός των κλάσεων να εφαρμόσουν μεθόδους που δεν χρειάζονται.
Παράδειγμα: Διεπαφές για ενημέρωση και εμφάνιση δεδομένων.
module UpdateableFeature
def update_feature
# Logic for updating feature
end
end
module DisplayableFeature
def display_feature
# Logic for displaying feature
end
end
Dependency Inversion Principle(DIP)
Αυτή η αρχή προτείνει τη χρήση της ένεσης εξάρτησης για τη διαχείριση των εξαρτήσεων.
Παράδειγμα: Χρήση της ένεσης εξάρτησης για τη διαχείριση εξαρτήσεων.
class OrderProcessor
def initialize(db_connection, email_service)
@db_connection = db_connection
@email_service = email_service
end
end
Να θυμάστε ότι η εφαρμογή των SOLID αρχών στο Ruby θα πρέπει να γίνεται με ευελιξία με βάση τον συγκεκριμένο σκοπό του έργου σας και την κατανόησή σας SOLID και Ruby.