Skip to content

This is Simple Authentication app for showing implementation of 7 oop principle , you can see different principle's implementation in different classes. Classes name showing the name of Principle .Description is in readme.md file

Notifications You must be signed in to change notification settings

AkhlaqAltaf/Lab2DP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Here are descriptions for each of the Object-Oriented Programming (OOP) principles applied in my code:

  1. Encapsulation:

    • Description: Encapsulation is a fundamental OOP principle that involves bundling data (attributes) and the methods (functions) that operate on that data into a single unit known as a class. Access to the internal state of an object is controlled through access modifiers (public, private, protected), which restrict direct access to some components, thus preventing unintended interference. Encapsulation promotes data integrity and protects the object's internal details.
  2. Abstraction:

    • Description: Abstraction is the process of simplifying complex systems by modeling classes based on essential properties and behaviors while hiding unnecessary details. In my code, abstraction is achieved through the use of interfaces like Validator and Authenticator. These interfaces define contracts for validation and authentication, providing a clear and abstracted structure for these functionalities. Additionally, my classes encapsulate the complexity of validation and authentication processes, presenting a simplified and abstracted interface for users.
  3. Inheritance:

    • Description: Inheritance is a mechanism in OOP where one class (the subclass or child class) inherits properties and behaviors from another class (the superclass or parent class). It promotes code reuse and the creation of specialized classes. In my code, inheritance is used when the RegistrationFields class extends the InitialFields class. This relationship signifies that RegistrationFields inherits the methods and attributes of InitialFields, allowing for specialization and customization.
  4. Polymorphism:

    • Description: Polymorphism allows objects of different classes to be treated as objects of a common superclass. It enables dynamic method dispatch and method overriding, allowing different classes to provide their own implementations of methods with the same name. In my code, polymorphism is demonstrated when you override the email() and password() methods in the RegistrationFields class, allowing these methods to be used interchangeably with the superclass methods. This flexibility enables you to use different validation logic as needed.
  5. Composition:

    • Description: Composition is a design principle where a class is composed of one or more objects of other classes as its parts or components. The whole object is responsible for the creation and management of its parts. While not explicitly demonstrated in my code, composition typically involves combining objects of different classes to create more complex objects and is often used to build larger systems.
  6. Association:

    • Description: Association represents a relationship between two classes where one class is connected to another class but doesn't necessarily own or manage it. It's a more loosely coupled relationship. In my code, association is shown when the ObjectCreater_Association class accepts a Validation object as a parameter in its constructor. This association establishes a connection between the two classes, but ObjectCreater_Association doesn't create or manage the Validation object.
  7. Dependency Inversion:

    • Description: The Dependency Inversion Principle (DIP) is a design principle that promotes decoupling between high-level and low-level modules by introducing abstractions (interfaces or abstract classes). High-level modules should depend on abstractions rather than concrete implementations, fostering flexibility and maintainability. In my code, you've taken steps toward DIP by defining interfaces (Validator and Authenticator) to decouple high-level modules from specific implementations, allowing my classes to depend on these abstractions. This design enhances flexibility and ease of maintenance in my codebase.

About

This is Simple Authentication app for showing implementation of 7 oop principle , you can see different principle's implementation in different classes. Classes name showing the name of Principle .Description is in readme.md file

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages