Escolha uma Página

Abstração

18 de maio de 2022
by Cenora
7
class Estojo {
  List<Object> itens = [];

  void adicionarItem(Object item) {
    itens.add(item);
  }

  void removerItem(Object item) {
    itens.removeWhere((element) => element == item);
  }

  void mostrarItem() {
    for (var item in itens) {
      print(item);
    }
  }
}
abstract class CoisaDeApagar {}
abstract class CoisaDeEscrever {
  String _marca = "";

  String get marca => _marca;

  set marca(String marca) {
    _marca = marca;
  }

  void barulho();
}

import 'package:abstracao/coisadeapagar.dart';

class Corretivo implements CoisaDeApagar {}

import 'package:abstracao/coisadeapagar.dart';

class Borracha implements CoisaDeApagar {
  String _tipo = "";

  String get tipo => _tipo;

  set tipo(String tipo) {
    _tipo = tipo;
  }
}

import 'package:abstracao/coisadeescrever.dart';

class Lapis implements CoisaDeEscrever {
  String _tipo = "";

  String get tipo => _tipo;

  set tipo(String tipo) {
    _tipo = tipo;
  }

  @override
  String get marca {
    return marca += " de lapis";
  }

  @override
  set marca(String marca) {
    marca += " de lapis";
  }

  @override
  void barulho() {
    print("chichichichichichi");
  }
}


import 'package:abstracao/coisadeescrever.dart';

class Lapiseira implements CoisaDeEscrever {
  String _grafite = "";

  String get grafite => _grafite;

  set tipo(String grafite) {
    _grafite = grafite;
  }

  @override
  String get marca {
    return marca += " de lapiseira";
  }

  @override
  set marca(String marca) {
    marca += " de lapiseira";
  }

  @override
  void barulho() {
    print("object");
  }
}

import 'package:abstracao/coisadeescrever.dart';

class Caneta implements CoisaDeEscrever {
  String _cor = "";

  String get cor => _cor;

  set cor(String cor) {
    _cor = cor;
  }

  @override
  String get marca {
    return marca += " da caneta";
  }

  @override
  set marca(String marca) {
    marca += " da caneta";
  }

  @override
  void barulho() {
    // TODO: implement barulho
  }
}
import 'package:abstracao/borracha.dart';
import 'package:abstracao/caneta.dart';
import 'package:abstracao/corretivo.dart';
import 'package:abstracao/estojo.dart';
import 'package:abstracao/lapis.dart';
import 'package:abstracao/lapiseira.dart';

void main(List<String> arguments) {
  Estojo tojo = Estojo();
  Lapis lp = Lapis();
  Lapis pl = Lapis();
  Lapiseira la = Lapiseira();
  Lapiseira pa = Lapiseira();
  Caneta ct = Caneta();
  Caneta ca = Caneta();

  Borracha b = Borracha();
  Borracha r = Borracha();
  Corretivo c = Corretivo();
  Corretivo t = Corretivo();

  tojo.adicionarItem(lp);
  tojo.adicionarItem(pl);
  tojo.adicionarItem(la);
  tojo.adicionarItem(pa);
  tojo.adicionarItem(ct);
  tojo.adicionarItem(ca);
  tojo.adicionarItem(c);
  tojo.adicionarItem(r);
  tojo.adicionarItem(c);
  tojo.adicionarItem(t);
  tojo.adicionarItem(b);

  tojo.mostrarItem();
}

Relacionadas, talvez…

Abstract Factory

Foto por Toa Heftiba em Unsplash Imagine que você está criando um simulador de loja de mobílias. Seu código consiste de classes que representam: Uma família de produtos relacionados, como: Cadeira, Sofá e MesaDeCentroVárias variantes dessa família: Moderno, Vitoriano...

Análise POO

Você gosta de gatos? Espero que sim, porque vou tentar explicar osconceitos da POO usando vários exemplos com gatos. Foto por ModCatShop em Unsplash Cada gato tem uma porção de atributos padrão: nome, gênero, idade, peso, cor, etc. Estes são chamados os campos de...

História de usuário

Foto por Maranda Vandergriff em Unsplash Histórias de usuárioPara planejar um projeto, devemos saber algo sobre os requisitos, mas não precisamossaber muito. Para propósitos de planejamento, precisamos saber sobre um requisito apenaso suficiente para estimá-lo. Talvez...

Share This