Padrão Composto
Click here to load reader
-
Upload
robson-santiago -
Category
Business
-
view
678 -
download
4
Transcript of Padrão Composto
Design Patterns
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.
Estrutura Árvore
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();
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();
MenuCompos
to
Menu Menu
Menu Item
Menu Item
Menu Item
Menu Item
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());
public class Garconete {MenuComposto todosMenus;
public Garconete(MenuComposto menuCompos) this.todosMenus = menuCompos;
public void imprimir()todosMenus.imprimir();
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();
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
Obrigado !