oop szemlelet, tervezesi fazis

hello

anno irtam egy plugint az an2-hoz, gyakorlatilag sima C-ben, de mivel a kod kezd kicsit atlathatatlan lenni, elkezdtem fejben osszerakni, hogy hogy is epulne fel a c++-os, oop-s kod

a plugin annyit csinal, hogy tulajdonkepp lemodellezi az ancsa motorjanak homersekletvaltozasait, egyeb nyalanksagait a kovetkezok figyelembevetelevel:
- kulso levego homerseklet
- sebesseg (IAS)
- zsaluk nyitottsaganak merteke
- fordulatszam

a motorhomerseklethez meg annyit, hogy ha tul hideg a motor es fel akarjuk porgetni, akkor tonkremegy a motor, ha tulmelegitjuk, akkor kigyullad.

ez vezerli az inercialis motorinditast is: fel kell porgetni egy lendkereket, majd egy kapcsoloval egy kuplungszerkezet atkapcsolja a motor fotengelyre es felporgeti. a motor nem beindithato, ha a lendkerek nincs elegge felporgetve.

az x-plane plugin rendszere ugy epul fel, hogy tulkepp van egy konstruktorfuggveny, egy desktrukor es egy un. flightloopcallback, ami x idonkent (altalam beallitott) lefut

valahogy igy kepzeltem el:

class Enginemodel {
    
    public property-k: ias, ambientTemp, cowlFlaps, rpm (ezeket az x-plane-bol olvasom ki)
    
    public checkTemp() { ... } 
    // itt kezelnem le a homersekletvaltozast a fentiekben leirtak szerint

    public checkStarter() { ... } 
    // ez ellenorizne, hogy a lendkerek fel van-e porgetve, ossze van e kapcsolva a motorral,
    // be tud-e indulni a motor

    public startFlyWheel() { ... }
    // ez lenne az inercialis indito, itt novelnem ill csokkentem a lendkerek fordulatszamat

    private failEngine(int type) { ... }
    // itt mivel tobb fele modon is tonkremehet a motor, igy kezelnem le, hogy epp hogyan megy
    // tonkre, ez a fenti ket publicbol hivodna, ha epp tonkretettuk a motort

}

a checkTemp futna le a CB-ben x mp-enkent minden esetben, a startFlyWheel es checkStarter csak akkor, ha a felporgeto/osszekapcsolo kapcsolo bizonyos helyzetekben van

a kesobbiekben tervezem az elektromos ill. hidraulikus renszert is "megepiteni", ezert kezdtem el azon gondolkozni, hogy tudnam oop modon felepiteni a cuccot

varom a tapasztaltak velemenyeit, javaslatait! koszi :)

Hozzászólások

Hi!

Miért érdemes OOP-vel megcsinálni? Mármint mivel ad többet? (Végre itt van egy érdekes gyakorlati probléma)

a modularis felepitest, modulok kommunikaciojat (ami pl az elektromos rendszernel nekem kelleni fog, mert eleg sokminden osszefugg egymassal ott), konnyebb bovithetoseg es ha 3 honap mulva ranezek a kodra, akkor nem kell az egesz kodot atneznem ahhoz, hogy ertsem mit is csinal, hanem eleg azt a kis reszt, amin epp dolgozni fogok :) igy hirtelen ennyit tudtam melle tenni. ellene annyit, hogy tobbet kell igy mazsolazni, meg gepelni, de (allitolag) egy jol felepitett oop kodhoz hozzanyulni gyerekjatek :)

--
x-plane :: hu | x-economy | Antonov An-2 cockpit