padrão composto
TRANSCRIPT
![Page 1: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/1.jpg)
Design Patterns
![Page 2: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/2.jpg)
Padrão Composto
Permite que você componha objetos em estrutura de árvore para representar hierarquias parte-todo.
Com este padrão, os clientes podem tratar objetos individuais ou composições de objetos de maneira uniforme.
![Page 3: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/3.jpg)
Estrutura Árvore
![Page 4: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/4.jpg)
PUBLIC ABSTRACT CLASS MENUCOMPOSTO PUBLIC VOID ADICIONAR(MENUCOMPOSTO MENUCOMPOSTO)
THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC VOID REMOVER(MENUCOMPOSTO MENUCOMPOSTO)THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC MENUCOMPOSTO GETFILHO(INT I)THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC STRING GETNOME() THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC STRING GETDESCRICAO()THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC DOUBLE GETPRECO()THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC BOOLEAN ISVEGETARIANO()THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
PUBLIC VOID IMPRIMIR()THROW NEW UNSUPPORTEDOPERATIONEXCEPTION();
![Page 5: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/5.jpg)
public class Menu extends MenuComposto {
ArrayList<MenuComposto> menuCompostos = new Arr.....
String nome;
String descricao;
public Menu(String nome, String descricao)
this.nome = nome;
this.descricao = descricao;
// Implementação dos métodos do MenuComposto.....
@Override
public void imprimir() {
System.out.print("\n" + getNome());
System.out.println(" , " + getDescricao());
System.out.println("______________");
Iterator<MenuComposto> iterator = menuCompostos.iterator();
while(iterator.hasNext()){
MenuComposto menuComposto = iterator.next();
menuComposto.imprimir();
![Page 6: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/6.jpg)
MenuCompos
to
Menu Menu
Menu Item
Menu Item
Menu Item
Menu Item
![Page 7: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/7.jpg)
public class MenuItem extends MenuComposto {String nome;String descricao;boolean isVegetariano;double preco;
public MenuItem(String nome, String desc, boolean isVeg, double preco) this.nome = nome;this.descricao = .................
@Overridepublic void imprimir()
System.out.print(" " + getNome());If(this.isVegetariano()){System.out.print(" (V) ");
System.out.println(" , " + getPreco());System.out.println("- " + getDescricao());
![Page 8: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/8.jpg)
public class Garconete {MenuComposto todosMenus;
public Garconete(MenuComposto menuCompos) this.todosMenus = menuCompos;
public void imprimir()todosMenus.imprimir();
![Page 9: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/9.jpg)
public class TestMenuComposto {
public static void main(String[] args) {
MenuComposto menuRod = new Menu("Menu do Rod", "Cafézinho");
MenuComposto menuDouglas = new Menu("Menu do Douglas", "Cafézão");
MenuComposto menuDoBolha = new Menu("Menu do Bolha", "Lixo");
MenuComposto menuDoChina = new Menu("Menu do China", "Ehmmmmmmm....");
MenuComposto todosMenus = new Menu("Todos menus", " uma perfeita combinação .");
todosMenus.adicionar(menuRod);
todosMenus.adicionar(menuDouglas);
todosMenus.adicionar(menuDoBolha);
todosMenus.adicionar(menuDoChina);
menuRod.adicionar(new MenuItem("Macarrao", "Uma deliciosa macarronada", false, 5.99));
menuRod.adicionar(new MenuItem("MacarraoII", "Uma deliciosa macarrona com molho dobro", false, 8.99));
menuDouglas.adicionar(new MenuItem("Café", "Maravilhoso", false, 4.33));
menuDouglas.adicionar(new MenuItem("CaféII", "MaravilhosoII", false, 5.33));
menuDoBolha.adicionar(new MenuItem("Frutas", "Saudaveis", true, 3.38));
menuDoBolha.adicionar(new MenuItem("FrutasII", "SaudaveisII", true, 7.38));
menuDoChina.adicionar(new MenuItem("Leite Desnatado", "Fresco", false, 3.69));
menuDoChina.adicionar(new MenuItem("Leite DesnatadoII", "FrescoII", false, 4.69));
Garconete garconete = new Garconete(todosMenus);
garconete.imprimir();
![Page 10: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/10.jpg)
Todos menus , uma perfeita combinação .______________Menu do Rod , Cafézinho______________
Macarrao , 5.99- Uma deliciosa macarronada MacarraoII , 8.99- Uma deliciosa macarronada com molho em dobro
Menu do Douglas , Cafézão______________
Café , 4.33- Maravilhoso CaféII , 5.33- MaravilhosoII
Menu do Bolha , Lixo______________
Frutas (V) , 3.38- Saudaveis FrutasII (V) , 7.38- SaudaveisII
Menu do China , Ehmmmmmmm....______________
Leite Desnatado , 3.69- Fresco Leite DesnatadoII , 4.69- FrescoII
![Page 11: Padrão Composto](https://reader038.vdocuments.net/reader038/viewer/2022100420/55896cf4d8b42a9c4f8b471c/html5/thumbnails/11.jpg)
Obrigado !