forked from Syntax-Error/TradeSim
103 lines
2 KiB
Org Mode
103 lines
2 KiB
Org Mode
#+TITLE: Fejlesztői Dokumentáció
|
|
|
|
* TODO Követelmények
|
|
* TODO Use-cas-ek
|
|
* TODO Struktúrális leírás
|
|
** Osztály diagram
|
|
|
|
#+BEGIN_SRC plantuml :file class-diagram.png :exports result
|
|
@startuml
|
|
Exchange <|--- Binance
|
|
Market <--- "-currencies 2" Currency
|
|
Exchange "-exchange 1" *--- " #markets 1..*" Market
|
|
Exchange <... Trader
|
|
TradeTracker *--- "-exchanges 1...*" Exchange
|
|
TradeTracker "-tracker 1" *--- "-traders 0..*" Trader
|
|
Market <... TradeTracker
|
|
Market <... Trader
|
|
|
|
class TradeTracker << (S,#FF7700) Singleton >> {
|
|
-round()
|
|
+start()
|
|
+getExchange(name: String): Exchange
|
|
}
|
|
|
|
abstract class Trader {
|
|
+{abstract} step()
|
|
}
|
|
|
|
note left of Trader::step()
|
|
Itt történik a trader belső logikája
|
|
end note
|
|
|
|
abstract class Exchange {
|
|
-String name
|
|
+getName(): String
|
|
+{abstract} updateAllMarkets()
|
|
+{abstract} updateMarket(id: int)
|
|
+{abstract} updateMarket(name : String)
|
|
+getMarket(id: int): Market
|
|
+getMarket(name: String): Market
|
|
+{abstract} addMarket(m: Market)
|
|
}
|
|
|
|
class Binance {
|
|
-{static} String baseURL
|
|
+updateMarket(id: int)
|
|
+updateMarket(name : String)
|
|
+updateMarkets()
|
|
}
|
|
|
|
note right of Binance
|
|
Ez csak egy példa, lehetne akár más is
|
|
end note
|
|
|
|
class Market {
|
|
-String name
|
|
-double exchange_rate
|
|
+Market(primary: Currency,secondary: Currency)
|
|
+getName(): String
|
|
+getExchangeRate(): double
|
|
+setExchangeRate(d: double)
|
|
+buy(w: Wallet, amount: double)
|
|
+sell(w: Wallet, amount: double)
|
|
}
|
|
|
|
class Currency {
|
|
-String name
|
|
-String symbol
|
|
+Currency(name: String,symbol: String)
|
|
+getName() : String
|
|
+getSymbol() : String
|
|
}
|
|
|
|
Trader *--- "-wallet 1" Wallet
|
|
|
|
class Wallet{
|
|
-Map balances
|
|
+acceptTransaction(t: Transaction)
|
|
}
|
|
|
|
Transaction <... Wallet
|
|
Wallet <... Market
|
|
|
|
class Transaction{
|
|
-String currency_rhs
|
|
-String currency_lhs
|
|
-double amount
|
|
-double price
|
|
}
|
|
|
|
WebAPI <--- Binance
|
|
|
|
class WebAPI{
|
|
-String baseURL
|
|
+WebAPI(baseURL: String)
|
|
+request(path: String): JsonValue
|
|
}
|
|
@enduml
|
|
#+END_SRC
|
|
|
|
#+RESULTS:
|
|
[[file:class-diagram.png]]
|
|
* TODO Viselkedés leírása
|