Skip to content

Java

Null Object

Null Object Design Pattern logo

Null Object is a behavioural design pattern based on inheritance which creates a valid representation of null objects in a system, in order to avoid returning null objects, on which respective null checks would be needed to prevent NullPointerException and unexpected behaviour of the application objects.

Introduction

It’s common to write methods that return null in situations where the requested information is not present or some conditions are not met in order to execute some chunk of code. However, sometimes this behaviour is poorly documented so it takes the developers using a given API by surprise, moreover, it can force that said developers to write lots of null checks to avoid runtime exceptions.

On either way, the application code might end up with a lack of cohesion and not clean at all, because now this chunk of code has to deal with a “null possible situation” and take decisions that would not be supposed to be taken by itself.

The Null Object design pattern comes to work on this problem, basically, instead of returning null where an object of class Foo was expected, one could return an object of a subclass of Foo in a basic valid state but at the same time, adhering to Foo‘s contract.

Read More »Null Object

Start, Stop e Restart Wildfly

Wildfly logo

Se sua memória é como a minha, daquelas que gostam de pregar peças em você, então este é o seu tutorial! Abaixo você verá os três comandos mais importantes para iniciar (start), parar (stop) e reiniciar (restart) o Wildfly e demais releases do JBoss. Além disso, veremos um comando extra para iniciá-lo em modo domain.

Read More »Start, Stop e Restart Wildfly

Builder

Builder Design Pattern Logo

Builder é um design pattern criacional que foca no desacoplamento entre a complexa lógica de construção e a representação de um objeto.

Introdução

As vezes a construção de um objeto pode ser complexa, devido a validações de parâmetros, busca de informações em arquivos ou bases de dados, ou até mesmo pela quantidade de parâmetros que um construtor espera receber. Nestes casos, se você “misturar” a lógica de criação do objeto com a lógica que define seu comportamento, você poderá acabar por ter uma classe pouco coesa e difícil de reaproveitar.

O design pattern Builder vem para resolver este problema, colocando tanto a lógica criacional quanto a lógica comportamental eu seus devidos lugares, por proporcionar o encapsulamento da construção de um objeto, de um modo tão claro que você poderá até desenvolver diferentes implementações para a criação de um mesmo objeto ou de um mesmo builder.

Read More »Builder

Builder

Builder Design Pattern Logo

Builder is a creational design pattern which aims on decoupling the construction logic of a complex object from its representation.

Introduction

Sometimes an object construction can be complex, because of parameter validations, search of informations on files or database, or even for numerous parameters the object’s constructor is waiting to receive. If you mix up the logic creational logic along the class’s behaviour logic, you may lose the class’s cohesion and can make it difficult to reuse.

Builder design pattern comes to solve this problem, putting both creational and behavioural logic on it right places, by providing enough encapsulation for object’s construction, in such a way you can even develop any number of different implementations for a single builder.

Read More »Builder

Design Patterns

Design Patterns Logo Image


Design patterns (padrões de projeto) são uma coleção de soluções abstratas para problemas recorrentes no desenvolvimento de software orientado a objetos. Essas soluções são apresentadas na forma de templates que podem ser aplicados em diferentes situações e diferentes linguanges de programação, porém com estrutura similar, provendo uma solução que contribui para a flexibilidade, extensibilidade, portabilidade e reúso de código da aplicação.

Read More »Design Patterns

Design Patterns

Design Patterns Logo Image


Design patterns are a collection of abstract solutions to recurrent problems in object-oriented software development. These solutions are presented like templates that can be applied in many situations and programming languages, but with similar structures, providing a design which contributes to system’s flexibility, extensibility, portability and code reuse.

Read More »Design Patterns