Universidad de Chile
Ejemplo mínimo para estudiar Double Dispatch en Scala (OOP puro).
Modela dos jerarquías: Money y MoneyBag, donde la suma + se resuelve por double dispatch.
- Scala 3.3.6
- sbt 1.11.6
src/
main/scala/money/
MoneyLike.scala # interfaz común y contrato del double dispatch
Money.scala # valor atómico (monto + divisa)
MoneyBag.scala # bolsa de valores por divisa; normaliza sumas
test/scala/money/
MoneyTest.scala # pruebas de Money
MoneyBagTest.scala # pruebas de MoneyBag
Clonar y entrar al proyecto:
git clone https://github.com/dcc-cc3002/money-dd.git
cd money-ddCompilar:
sbt compileEjecutar tests (munit):
sbt testMoneyLike.+delega enthat.addMoney/that.addMoneyBag→ 1er dispatch.- Las implementaciones (
Money,MoneyBag) deciden cómo combinar → 2º dispatch. MoneyBagagrega por divisa y evita inspecciones de tipo.
Este material se distribuye bajo la licencia Atribución 4.0 Internacional (CC BY 4.0).