Home » Java Fundamentals

Java Fundamentals

Pseudo-Random Number Generators

Java 17 introduced enhancements to the Pseudo-Random Number Generators (PRNGs) to make working with random numbers in Java more versatile and user-friendly. These improvements provide better support for using multiple PRNG algorithms and properly handling stream-based operations. Here’s an overview of the enhancements: 1. PRNG Enhancements: Java 17 introduces a new interface type called RandomGenerator

Pseudo-Random Number Generators Read More »

Java 17: A Brief Overview of Features and Enhancements

Java 17 LTS is the latest release providing long-term support for the Java SE platform. According to the Oracle No-Fee Terms and Conditions License, JDK 17 binaries are permissible for use in production and can be redistributed without any associated costs. The abbreviation “LTS” denotes “long-term support,” and this release is slated for availability on

Java 17: A Brief Overview of Features and Enhancements Read More »

Visitor Pattern

In the Visitor pattern, we employ a visitor class to alter the execution algorithm of an element class. This flexibility allows the element’s execution algorithm to adapt as the visitor changes. This pattern falls under the behavior pattern category. In accordance with this pattern, an element object must accept the visitor object, enabling the visitor

Visitor Pattern Read More »

Template Method

The Template Method is a behavioral design pattern that defines a blueprint for an algorithm in a superclass but allows specific steps of the algorithm to be overridden by subclasses without changing its core structure. Consider developing a data mining application that analyzes corporate documents in various formats (PDF, DOC, CSV) to extract meaningful data.

Template Method Read More »

Memento Pattern

The Memento pattern also known as Token is a behavioral design concept that enables the preservation and retrieval of an object’s prior state discreetly, without exposing the details of its internal structure and implementation. Imagine creating a text editor app with an undo feature. To save states for undo, the app records object states before

Memento Pattern Read More »

Iterator Pattern

The Iterator Pattern also known as Cursor is a behavioral design pattern that provides a way to access elements of an aggregate object (such as a collection) sequentially without exposing the underlying representation of that object. It is used to traverse a container of elements, allowing clients to access its elements without needing to know

Iterator Pattern Read More »

Flyweight Pattern

The Flyweight pattern is primarily employed to minimize the volume of object instances and, consequently, reduce memory consumption while enhancing performance. This design pattern falls within the structural pattern category, as it offers techniques for reducing the total number of objects, thereby enhancing the organization of objects within an application. The Flyweight pattern aims to

Flyweight Pattern Read More »

Decorator Pattern

The Decorator pattern belongs to the category of structural design patterns. It provides a way to enhance the functionality of objects by enclosing them within wrapper objects, which in turn, impart additional behaviors to these objects. When developing a reporting system, you need to provide flexibility for users to customize the content and appearance of

Decorator Pattern Read More »

Composite Pattern

The Composite Pattern is a structural design pattern to compose objects into tree-like structures to represent part-whole hierarchies. It allows clients to treat individual objects and compositions of objects uniformly. In essence, the Composite Pattern creates a unified interface for both individual objects (leaf nodes) and composite objects (nodes that can contain other objects). This

Composite Pattern Read More »

Bridge Pattern

The Bridge pattern is like a blueprint for organizing big classes or groups of related classes. It helps you separate them into two distinct parts: one for their main features (abstraction) and another for how they actually work (implementation). This separation allows you to work on these parts independently, making your code more flexible and

Bridge Pattern Read More »

Scroll to Top