Hogyan szervezzen osztályokat egy asztali alkalmazásban swing-stack overflow használatával oroszul?

Nem tudom megérteni, hogyan lehet osztályokat rendezni egy asztali alkalmazásban swing alapján. Különösen nem értem, hogyan határoznom meg az alkalmazás logikáját és a gui leírást tartalmazó kódot. Például, ha számológépet írok, hogyan lehet elkülöníteni a matematikai függvények kódját az interfészkódtól? Minden olyan tankönyvben, amit láttam, minden össze van keverve egy halomban. Itt például egy tipikus minta. Ebben benne van a kód, amely a varjakot ugyanazzal az osztályban számolja, mint a gui kód. Ha azonban még mindig sikerül, hogy különbséget tegyünk (nem egészen triviális, mivel én tapasztalatlanság), a kérdés az, hogy például át 2 számot, hogy a felhasználó által bevitt a TextField egy olyan funkció, hogy meghatározzák, és ez egy másik osztály ( egy osztályban más mat funkciókkal). Nem akarok részletekbe menni, és példát adni a kódra, azt hiszem, az ügy lényege világos. Nem tudom megfogalmazni azt a kérdést, hogy a Google segítségével a problémát megoldanám. Mit kell olvasni / keresni, hogy tisztázza az osztályok szervezését az alkalmazásokban, például egy kalkulátort? (Ismerem a paradigmaváltást, további részletekre van szüksége) Köszönjük előre. Elnézést kérek a kérdés esetleges ostobaságáért, ez az első alkalmazásom.

A Swing az MVC mintát használja. Szintén hasonló mintát kell használnia.

A számológép, ami a matematikai számításokat tükrözi, modell. A grafikus felület. a felhasználóval való interakció a nézet és a vezérlő.

Amikor a felhasználó megnyom egy gombot, a gomb továbbítja az eseményt a vezérlőnek. és az utóbbi viszont megváltoztatja a modellt. A modell értesíti a változások nézetét és megjeleníti azokat.

Az MVC SimpleMVC mintázat nagyon egyszerű végrehajtása.