-
Fototrend

Új hozzászólás Aktív témák
-
bandi0000
nagyúr
válasz
bandi0000
#19758
üzenetére
Szóval a példa amit kértetek kb így nézne ki:
Egyszerűség kevéért tegyük fel, hogy ez egy Logolós funkció lesz, vár egy string-et,amit tekinthetünk egy TAG-nek, és egy Map-et, amibe bármit belerakunk nyilván egy String lesz a végén
Szóval valahogy így néz ki:
Kotlinba írodott a csoda példám, de talán érthetőTalán már az interactorig értem is így, hogy miért kellett, jó sok mindent lehagytam, szóval tételezhetjük fel, hogy az jó, de ami sötét nekem, hogy miben segít az interactor alatti rész, ugyanis anélkül, hogy a konkrét felhasználáskor ezt csinálnám:
val data = SpecificSecondScreenData()data.name = "Tag"SecondScreenLoggerImpl().log(data)Csinálhatnám szimplán ezt:
PerfLogInteractor().logSecondScreenLogs("TAG",mapOf())interface ILogger{
fun logFirstScreenLogs(name: String, list: List<Any>)
fun logSecondScreenLogs(name: String, attrs: Map<String, Any>)
}
class LoggerImpl(): ILogger{
//Itt azért sok egyéb dolog van, de a lényegi része ennyi:
override fun logFirstScreenLogs(name: String, list: List<Any>) {
ThirdPartyLogger.getInstance().Log(name, list)
}
override fun logSecondScreenLogs(name: String, attrs: Map<String, Any>) {
ThirdPartyLogger.getInstance().Log(name, attrs)
}
}
class PerfLogHelper(){
private val Logger = LoggerImpl()
fun getInstance() = PerfLogHelper()
fun logFirstScreenLogs(name: String, list: List<Any>){
Logger.logFirstScreenLogs(name,list)
}
fun logSecondScreenLogs(name: String, attrs: Map<String, Any>){
Logger.logSecondScreenLogs(name,attrs)
}
}
//Ez a kettő multi modul miatt kell
interface IPerfLogInteractor{
fun logFirstScreenLogs(name: String, list: List<Any>)
fun logSecondScreenLogs(name: String, attrs: Map<String, Any>)
}
class PerfLogInteractor(): IPerfLogInteractor{
override fun logFirstScreenLogs(name: String, list: List<Any>) {
PerfLogHelper.getInstance().logFirstScreenLogs(name,list)
}
override fun logSecondScreenLogs(name: String, attrs: Map<String, Any>) {
PerfLogHelper.getInstance().logFirstScreenLogs(name,attrs)
}
}class SpecificSecondScreenData(): ISecondScreenData{override var name: String = "TAG"override fun getAttrs(): Map<String, Any> {return mapOf()}}
interface ISecondScreenData{
var name: String
fun getAttrs(): Map<String,Any>
}
interface ISecondScreenLogger{
fun log(data: ISecondScreenData)
}
class SecondScreenLoggerImpl(): ISecondScreenLogger{
val interactor: IPerfLogInteractor = PerfLogInteractor()
override fun log(data: ISecondScreenData) {
interactor.logSecondScreenLogs(data.name,data.getAttrs())
}
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Parkside szerszám kibeszélő
- PlayStation 5
- Le Mans Ultimate
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- Óra topik
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Autós topik
- Cseresznyepiros és mokka barna Redmi Note 15-ök az újévre
- További aktív témák...
- SCULPFUN S30 PRO 10w lézervágó gravírozó gép + 350x350 méhsejt + Elszívó box + Kiegészítők
- MikroTik RB962UiGS-5HacT2HnT- hAP ac RouterBoard 2,4GHz - 5GHz
- PS Vita 2000 japán dobozos újszerű állapot, új aksi, 16 GB Sony, 256 GB SD kártya, hordtáska
- SZÉP ÉS OLCSÓ! 100% akku és csak 6 hónapos, iPhone 16e 128GB AZONNAL! - Space Black! 155.990Ft
- Jura Ena 8 kávégép
- Bomba ár! Dell Precision 5530 - i7-8850H I 16GB I 512SSD I 15,6" FHD I P1000 I Cam I W11 I Gari!
- Eladó egy oneplus 9 pro 256/12
- Seagate Desktop SSHD 2TB 3,5" - ST2000DX001 45-80%
- MacBook Pro 16" M1 Max 64GB / 2TB / magyar / 27%-os ÁFÁS
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


