File tree Expand file tree Collapse file tree 5 files changed +131
-2
lines changed
tech.buildrun.example.prototype Expand file tree Collapse file tree 5 files changed +131
-2
lines changed Original file line number Diff line number Diff line change 1- # buildrun-designpattern-prototype
2- Exemplo aplicado do Design Pattern Prototype em código Java
1+ <h3 align =" center " >
2+ Exemplo aplicado do Design Pattern Strategy
3+ </h3 >
4+
5+ <p align =" center " >
6+
7+ <img alt =" License: MIT " src =" https://img.shields.io/badge/license-MIT-%2304D361 " >
8+ <img alt =" Language: Java " src =" https://img.shields.io/badge/language-java-green " >
9+ <img alt =" Version: 1.0 " src =" https://img.shields.io/badge/version-1.0-yellowgreen " >
10+
11+ </p >
12+
13+ Para um maior entendimento do Design Pattern [ clique aqui] ( https://refactoring.guru/pt-br/design-patterns/strategy ) .
14+
15+ ## :rocket : Tecnologias utilizaas
16+
17+ * Java 11
18+
19+ :mag : Baixe o projeto e teste você mesmo na prática.
20+
21+ [ Conheça mais sobre o nosso trabalho 😀] ( https://www.instagram.com/buildrun.tech/ )
22+
23+ Developed by Build & Run
Original file line number Diff line number Diff line change 1+ package badcode ;
2+
3+ import common .Person ;
4+
5+ import java .util .List ;
6+ import java .util .logging .Level ;
7+ import java .util .logging .Logger ;
8+
9+ public class MyBadCode {
10+
11+ private static final Logger logger = Logger .getLogger (MyBadCode .class .getName ());
12+
13+ public static void main (String [] args ) {
14+
15+ var narutoOriginal = new Person ("Yellow" , "Naruto Uzumaki" , "Orange" );
16+
17+ var clone1 = new Person (narutoOriginal .getHairColor (), narutoOriginal .getName (), narutoOriginal .getFavoriteColor ());
18+
19+ var clone2 = new Person (narutoOriginal .getHairColor (), narutoOriginal .getName (), narutoOriginal .getFavoriteColor ());
20+
21+ List .of (clone1 , clone2 )
22+ .forEach (MyBadCode ::logClone );
23+ }
24+
25+ private static void logClone (Person clone ) {
26+ logger .log (Level .INFO , "Clone! {0}" , clone );
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ package common ;
2+
3+ public class Person {
4+
5+ private final String hairColor ;
6+ private final String name ;
7+ private final String favoriteColor ;
8+
9+ public Person (String hairColor , String name , String favoriteColor ) {
10+ this .hairColor = hairColor ;
11+ this .name = name ;
12+ this .favoriteColor = favoriteColor ;
13+ }
14+
15+ public Person (Person person ) {
16+ this .hairColor = person .getHairColor ();
17+ this .name = person .getName ();
18+ this .favoriteColor = person .getFavoriteColor ();
19+ }
20+
21+ public String getHairColor () {
22+ return hairColor ;
23+ }
24+
25+ public String getName () {
26+ return name ;
27+ }
28+
29+ public String getFavoriteColor () {
30+ return favoriteColor ;
31+ }
32+
33+ @ Override
34+ public String toString () {
35+ return "Person{" +
36+ "hairColor='" + hairColor + '\'' +
37+ ", name='" + name + '\'' +
38+ ", favoriteColor='" + favoriteColor + '\'' +
39+ '}' ;
40+ }
41+ }
Original file line number Diff line number Diff line change 1+ package goodcode ;
2+
3+ import common .Person ;
4+
5+ import java .util .List ;
6+ import java .util .logging .Level ;
7+ import java .util .logging .Logger ;
8+
9+ public class MyGoodCode {
10+
11+ private static final Logger logger = Logger .getLogger (MyGoodCode .class .getName ());
12+
13+ public static void main (String [] args ) {
14+
15+ var narutoOriginal = new Person ("Yellow" , "Naruto Uzumaki" , "Orange" );
16+
17+ var cloneNaruto = new Person (narutoOriginal );
18+
19+ var cloneNaruto2 = new Person (narutoOriginal );
20+
21+ List .of (cloneNaruto , cloneNaruto2 )
22+ .forEach (MyGoodCode ::logClone );
23+ }
24+
25+ private static void logClone (Person clone ) {
26+ logger .log (Level .INFO , "Clone! {0}" , clone );
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <module type =" JAVA_MODULE" version =" 4" >
3+ <component name =" NewModuleRootManager" inherit-compiler-output =" true" >
4+ <exclude-output />
5+ <content url =" file://$MODULE_DIR$/../tech.buildrun.example.prototype" >
6+ <sourceFolder url =" file://$MODULE_DIR$/../tech.buildrun.example.prototype/src" isTestSource =" false" />
7+ </content >
8+ <orderEntry type =" jdk" jdkName =" 11" jdkType =" JavaSDK" />
9+ <orderEntry type =" sourceFolder" forTests =" false" />
10+ </component >
11+ </module >
You can’t perform that action at this time.
0 commit comments