Skip to content

Commit 82809b3

Browse files
committed
feat: bad code and good code added
1 parent aa5c249 commit 82809b3

File tree

5 files changed

+131
-2
lines changed

5 files changed

+131
-2
lines changed

README.md

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,23 @@
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
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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>

0 commit comments

Comments
 (0)