Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Java ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern

Padrões de projeto para iniciantes - Como usar o padrão de projeto Singleton em suas aplicações Java

Quantidade de visualizações: 12273 vezes
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementado extensivamente nas linguagens que suportam programação orientada a objetos, tais como Java e C#. Nesta dica eu mostrarei como implementá-lo.

Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação.

Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente.

Vamos ver um exemplo deste padrão em Java. Observe o código a seguir:

Código para Logger.java:

package estudos;

// Uma classe Singleton responsável por gravar
// logs no sistema
public class Logger {
    // variável estática e privada que guarda a instância
    // atual da classe
    private static Logger instancia = null;

    // Método estático que retorna uma instância já existente, ou
    // cria uma nova instância
    public static Logger getInstance() {
        if (instancia == null) {
            instancia = new Logger();
        }
        return instancia;
    }

    // Construtor privado para evitar que instâncias sejam
    // criadas usando new
    private Logger() {
        // não precisamos fazer nada aqui
    }

    // método usado para registrar logs
    public void registrarLog(String dados) {
        System.out.println("Vou registrar o log: " + dados);
    }
}

Veja agora como podemos chamar o método getInstance(), obter um objeto da classe Logger e "registrar um log":

Código para Main.java:

package estudos;

public class Main {
  public static void main(String[] args) {
    // vamos registrar um novo log usando a classe Singleton
    Logger.getInstance().registrarLog("Novo usuário cadastrado.");
  }
}

Ao executar esta aplicação teremos a seguinte saída:

Vou registrar o log: Novo usuário cadastrado.


JavaFX ::: Pacote javafx.scene.layout (Package javafx.scene.layout) ::: HBox (Classe HBox)

Como definir o espaço interno do HBox do JavaFX usando o método setPadding()

Quantidade de visualizações: 1081 vezes
Em algumas situações nós precisamos definir o espaço interno, ou seja, o padding, do gerenciador de layout HBox. Para isso nós podemos usar o método setPadding() e fornecer a ele um objeto da classe javafx.geometry.Insets. Este método é herdado da classe javafx.scene.layout.Region.

Lembre-se de que a função setPadding() define o espaço interno do VBox, ou seja, o espaço que deverá existir entre suas margens e os componentes contidos nele.

Veja um trecho de código JavaFX no qual temos um gerenciador de layout HBox e três botões:

package estudosjavafx;
 
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
 
public class EstudosJavaFX extends Application {
  public static void main(String[] args){
    launch(args);
  }
 
  @Override
  public void start(Stage primaryStage){
    // vamos criar três botões
    Button btn1 = new Button("Botão 1");
    Button btn2 = new Button("Botão 2");
    Button btn3 = new Button("Botão 3");
     
    // agora criamos um laytou HBox e colocamos
    // os três botões nele
    HBox hBox = new HBox();
    hBox.getChildren().add(btn1);
    hBox.getChildren().add(btn2);
    hBox.getChildren().add(btn3);
     
    // vamos definir o espaço interno do HBox usando
    // um Inserts (top, direita, baixo, esquerda)
    hBox.setPadding(new Insets(20, 20, 20, 20));
    
    // criamos a cena e fornecemos o layout a ela
    // e definimos a largura e altura da cena
    Scene scene = new Scene(hBox, 400, 300);
     
    // adicionamos a cena ao palco principal
    primaryStage.setScene(scene);
    // e mostramos o palco
    primaryStage.show();
  }
}

Execute este código, experimente alterar os valores do objeto Insets fornecido ao método setPadding e veja os resultados obtidos.


Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Ruby - Como percorrer os elementos de um array em Ruby usando a função each

Quantidade de visualizações: 743 vezes
Pergunta/Tarefa:

Dado o seguinte array de int:

# vamos criar um array com 5 elementos
valores = [8, 3, 10, 4, 7]
Escreva um programa Ruby que usa a função each para percorrer os elementos deste array e exibir seus valores, todos na mesma linha e separados por espaço.

Sua saída deverá ser parecida com:

8 3 10 4 7
Resposta/Solução:

Veja a resolução comentada deste exercício usando Ruby:

# vamos criar um array com 5 elementos
valores = [8, 3, 10, 4, 7]

# vamos usar a função each para percorrer
# os itens do array e exibir seus valores
valores.each { | valor | print valor.to_s + " " }

Veja agora essa mesma resolução usando uma pequena variação, dessa vez usando each...do:

# vamos criar um array com 5 elementos
valores = [8, 3, 10, 4, 7]

# vamos usar a função each para percorrer
# os itens do array e exibir seus valores
valores.each do | valor |
  print valor.to_s + " "
end



PHP ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a equação reduzida da reta em PHP dados dois pontos pertencentes à reta

Quantidade de visualizações: 1152 vezes
Nesta dica de PHP veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código PHP completo para esta tarefa:

<?php
  // para executar abra uma janela de comando
  // cmd e dispare o comando abaixo:
  // C:\xampp\php>php c:\estudos_php\estudos.php
   
  // para ler a entrada do usuário
  $entrada = fopen("php://stdin","r");
  
  // vamos ler as coordenadas do primeiro ponto
  echo "Coordenada x do primeiro ponto: ";
  $x1 = fgets($entrada);
  echo "Coordenada y do primeiro ponto: ";
  $y1 = fgets($entrada);
    
  // vamos ler as coordenadas do segundo ponto
  echo "Coordenada x do segundo ponto: ";
  $x2 = fgets($entrada);
  echo "Coordenada y do segundo ponto: ";
  $y2 = fgets($entrada);
  
  $sinal = "+";
  // vamos calcular o coeficiente angular da reta
  $m = ($y2 - $y1) / ($x2 - $x1);
  // vamos calcular o coeficiente linear
  $n = $y1 - ($m * $x1);
 
  // coeficiente linear menor que zero? O sinal será negativo
  if ($n < 0){
    $sinal = "-";
    $n = $n * -1;
  }
  
  // mostra a equação reduzida da reta
  echo "Equação reduzida: y = " . $m . "x" 
    . " " . $sinal . " " . $n;
?>

Ao executar este código PHP nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 68 usuários muito felizes estudando em nosso site.