Urgent.News

What's breaking now, across thousands of outlets.

Tech

Strategy em Java para desacoplar o cálculo de frete

Autor: Emanuel Antônio Lima Rocha 1 Base fundamental Introdução O Strategy é um padrão comportamental que reúne maneiras alternativas de executar uma operação sob um contrato comum, permitindo escolher a implementação usada pelo contexto. No catálogo de Gamma e colaboradores, ele pertence à categoria dos padrões comportamentais [1]. A separação entre contexto, interface e estratégias concretas…

O Strategy é um padrão de design que permite escolher diferentes implementações para executar uma operação sob um contrato comum. Ele separa o contexto, interface e estratégias concretas, possibilitando a variação do algoritmo por composição. Neste artigo, apresenta-se um exemplo de aplicação do padrão Strategy para desacoplar o cálculo de frete em um checkout legado.

No contexto do estudo de caso, um checkout existente calcula frete econômico e expresso dentro de um único método, o que dificulta a manutenção ao alterar as tarifas. O padrão Strategy resolve esse problema, separando as regras de cálculo em estratégias distintas (FreteEconomico e FreteExpresso). Cada estratégia calcula o frete de acordo com suas próprias regras.

O código demonstra uma classe main, que serve como o contexto, e instancia uma CalculadoraFrete com uma das estratégias, dependendo da modalidade escolhida (economico ou expresso). As estratégias implementam a interface FreteStrategy e utilizam a classe Pedido, que contém a informação do peso do pedido. O método calcular() é responsável por realizar o cálculo de acordo com as regras de cada estratégia.

Para executar o código, basta rodar java Main.java economico ou java Main.java expresso, o que resultará em Frete: R$ 15.50 ou Frete: R$ 27.00, respectivamente. Implementações adicionais, como validações, integração com banco de dados e formatação da moeda, não foram incluídas neste exemplo, mas seriam necessárias para uma aplicação real.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

I Drew My Worst Work Habit as a Flowchart. It Was a Loop.

Last week I wrote that when a project gets hard and progress feels slow, I take on more work instead of asking for help. I put that in public on a Friday.

  • Reporter's habit of taking on additional work worsened project challenges.
  • Reporter began teaching teammates instead of handling tasks alone.
  • Reporter committed to seeking first to understand before being understood.

Why DNS Had to Exist: The Directory Problem Explained From First Principles

The Directory Problem: Why DNS Was Inevitable Software Laws from First Principles — Investigation 009. This picks up directly from Identity ≠ Location — read that first if you haven't.

  • DNS is the internet's directory to map stable domain names to IP addresses
  • User don't need to remember IP changes, DNS maintains current mappings
  • DNS pattern found in computing for stable identities with changing locations

Linux Mint Keyboard Shortcuts Every Beginner Should Know

When I switched to Linux Mint , I quickly realized something. I was using my mouse... a lot. Coming from Windows, I didn't know which keyboard shortcuts worked, which were different, and which could…

  • Press Super (Windows key) to open menu
  • Use Ctrl + Alt + T to open Terminal
  • Switch apps with Alt + Tab

More from Sunday 13 September →