Labs ICT
โญ Pro Login

Reuse Patterns & Frameworks

Framework-based development and reuse patterns.

Reuse Patterns & Frameworks

Software reuse patterns and frameworks provide structured approaches to building software by leveraging pre-built components and design solutions.

Frameworks vs Libraries


  +---------------------------------------------------------+
  |          FRAMEWORK vs LIBRARY                            |
  +---------------------------------------------------------+
  |                                                         |
  |   LIBRARY                                               |
  |   - You call the library's code                          |
  |   - You are in control                                   |
  |   - Example: Using Math.sqrt() in Java                  |
  |                                                         |
  |   FRAMEWORK                                             |
  |   - The framework calls your code (Inversion of Control)|
  |   - The framework is in control                          |
  |   - Example: Spring Boot, Django, React                  |
  |                                                         |
  +---------------------------------------------------------+

Popular Frameworks by Domain


  +------------------+------------------------------------------+
  | Domain           | Frameworks                               |
  +------------------+------------------------------------------+
  | Web Backend      | Spring Boot, Django, Express, Rails      |
  | Web Frontend     | React, Angular, Vue.js                   |
  | Mobile           | React Native, Flutter, SwiftUI           |
  | Testing          | JUnit, pytest, Jest, Selenium            |
  | Build            | Maven, Gradle, Webpack                   |
  | Data Science     | TensorFlow, PyTorch, scikit-learn        |
  | Enterprise       | Jakarta EE, .NET, Laravel                |
  +------------------+------------------------------------------+

Design Patterns as Reuse


  // Singleton Pattern - Reusable structural solution
  public class DatabaseConnection {
      private static DatabaseConnection instance;

      private DatabaseConnection() {}

      public static synchronized DatabaseConnection getInstance() {
          if (instance == null) {
              instance = new DatabaseConnection();
          }
          return instance;
      }
  }

  // Factory Pattern - Reusable creation logic
  public class NotificationFactory {
      public static Notification create(String type) {
          switch (type) {
              case "email": return new EmailNotification();
              case "sms":   return new SmsNotification();
              default: throw new IllegalArgumentException(type);
          }
      }
  }

Key Takeaways

  • Frameworks provide structure and reduce boilerplate code
  • Design patterns are reusable solutions to common problems
  • Understanding the IoC principle is key to framework usage
  • Choose frameworks based on community support and documentation

๐Ÿงช Quick Quiz

What is a software framework?