Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Designfråga

Postades av 2007-09-20 21:29:53 - Martin Adrian, i forum arkitektur, Tråden har 2 Kommentarer och lästs av 1382 personer

Jag jobbar med ett väldigt grötigt API och försöker förenkla det lite med en wrapper. Fastnar dock på en liten designfråga.

För att förenkla kan vi säga så att API:et hanterar två objekt register och ordrar. Skillnaden mellan dem är att ordrar består av både huvud och rader.

Nu är det så att det mesta som gäller för register också gäller för ordrar. Därför ärver ordern från registret.

dvs

class register {
...
}
class order : register {
...
}

Problemet är att det ursprungliga API:et inte är konsistent så det finns t.ex. flera olika sätt att radera i registret men bara ett sätt att radera en order.
Exempel:
register.Delete() // raderar aktuell post
register.Delete(string key) // raderar valfri post

men bara
order.Delete() // radera aktuell post

min wrapper har naturligtvis en virituell Delete() funktion så det fungerar men Delete(string) finns ju även i ordern trots att den inte fungerar. I dagsläget har jag gjort alla Delete-funktionerna virituella och i orderklassen ger de ett undantag.

Har funderat på att skapa en mellanklass som i princip är register utan Delete och låta båda ärva från den. Är det en bättre lösning?


Svara

Sv: Designfråga

Postades av 2007-09-20 21:51:45 - Niclas Pehrsson

Jag tycker du skall skapa en abstract klass som har allt som Register och Order har gemensamt.

Som sedan Register och Order ärver av som du beskriver.


Svara

Sv:Designfråga

Postades av 2007-09-21 10:25:05 - Niklas Jansson

Håller helt med. Arv ska alltid betyda "is-a", utan undantag. Det ska aldrig vara ett fel att öht anropa en metod.


BTW: "virituella" stavas virtuella. =)


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 764
27 959
271 761
331
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies