Permalänk
Medlem

Ta sig vidare i programmeringen?

Fastat totalt i programmeringen. Är nybörjare helt klart. Har endast gjort en handfull simpla program utan att ha avancerat de minsta..
Och det är det jag vill göra nu. Vill få ut något (suddigt beskrivet) av programmen.

Satt med detta igårnatt :

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Runtime.InteropServices; using System.Windows.Forms; namespace conFormula { class Program { private void keyPressed(object sender, KeyPressEventArgs e) { } int choice = -1; private void Navigate() { while (choice!=0) //skriv 0 = avslutar programmet. { try { choice = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("\nwrong input, please choose between 0-3"); // kör om metoden } switch (choice) { case 1: calcPQ(); break; case 2: areaCal(); break; case 3: calPerimeter(); break; case 4: areaCircle(); break; case 0: Environment.Exit(0); break; } } } // PQ formeln public static void calcPQ() { try { Console.WriteLine("You have choosen the formula (PQ formula) insert the following please: "); Console.WriteLine("Type the value of 'p': "); //input double p = double.Parse(Console.ReadLine()); Console.WriteLine("Type your value of 'q': "); //input double q = double.Parse(Console.ReadLine()); Console.WriteLine("Processing..."); System.Threading.Thread.Sleep(2000); //Executing the formula double x1 = -(p / 2) + Math.Sqrt(Math.Pow((p / 2), 2) - q); double x2 = -(p / 2) - Math.Sqrt(Math.Pow((p / 2), 2) - q); Console.WriteLine("Result: " + x1, x2); } catch (InvalidCastException e) { throw (e); } } // omkretsen av en rektangel public static void calPerimeter() { try { Console.WriteLine("You have chossen the formula (Perimeter calculation). Insert the following please: "); Console.WriteLine("Insert width(cm): "); double width = double.Parse(Console.ReadLine()); Console.WriteLine("Insert height(cm): "); double height = double.Parse(Console.ReadLine()); double total = width * 2 + height * 2; Console.WriteLine("Perimeter is = " + total + "cm"); Console.WriteLine("Thank you for using my program. Once again, press either 1,2,3 & 4 to navigate through different formulas."); } catch (Exception) { Console.WriteLine("An error occured. Try again."); } } // A = π × r2 public static void areaCircle() { Console.WriteLine("You have choosen the formula (Area of circle). Insert the following: "); Console.WriteLine("Insert the radius(cm): "); double r = double.Parse(Console.ReadLine()); double pi = 3.14; double total = pi * (r * r); Console.WriteLine("Area of your circle is: " + total +"cm"); } //Area av en rektangel public static void areaCal() { try { Console.WriteLine("You have choosen the formula (Area of rectangle). Insert the following please :"); Console.WriteLine("Insert width(cm): "); double width = double.Parse(Console.ReadLine()); Console.WriteLine("Insert height(cm): "); double height = double.Parse(Console.ReadLine()); double answer = width * height; Console.WriteLine("Area of your rectangel is : +" + answer + "cm"); } catch (Exception) { Console.WriteLine("An error occured."); } } public static void Start() { string welcome = "Welcome to my formula programe. Pick a formula by typing the number. 1.(PQ Formula), 2.(Area of rectangle), 3.(The perimeter of a rectangle), 4.(Area of circle), and 0 to exit."; Console.WriteLine(welcome); } static void Main(string[] args) { Start(); Program p = new Program(); p.Navigate(); Program q = new Program(); Console.ReadKey(); } } }

Det är något enkelt fomelprogram jag slängt ihop. Men vet inte hur jag ska gå vidare utifrån det här? Om vi bortser ifrån att lägga till fler olika formler att räkna ut, för det kan göras i sömnen.
Tex, programmet är ju i Console fönstret nu. Kanske skulle vara något om jag fick programmet i ett snyggt fönster med knappar och sådant? Jag vet inte, därför vänder jag mig för råd till er!

Vad skulle nästa steg för mig vara?
Tack!

Permalänk
Medlem

Lite mer objektorienterat? Skapa ett webbprojekt?

Permalänk
Medlem
Skrivet av wdrsn:

Lite mer objektorienterat? Skapa ett webbprojekt?

som sagt, är nybörjare på termer också! ^^ Med ett webbprojekt menar du?

Permalänk
Medlem

Om du vill göra ett fönsterprogram istället för ett konsolprogram så startar du Visual Studio, väljer att skapa ett nytt projekt och välj sedan under C#:
Windows->Windows Forms Application

Då skapas ett enkelt fönsterprogram som är helt tomt förutom huvudfönstret. Du ser fönstret i designviewn. Markerar du fönstret kommer du se fönstrets Properties till höger. Där kan du ändra olika inställningar för fönstret som t.ex. vilken text du vill ha i ramen, bakgrundsfärg osv.

Sedan kan du börja dra ut komponenter från toolboxen till vänster i Visual Studio. Du kan t.ex. dra ut en knapp (Button) och släppa ner den på fönstret. Du kan dra runt knappen och placera den var du vill ha den, ändra storlek på den osv. Även knappen har properties som du kan ändra på som t.ex. text, färger, ikon osv. Dubbelklickar du på knappen i design viewn så kommer ett kodfönster öppnas och en tom metod skapas. Denna metod kommer anropas när användaren klickar på knappen.
Du kan t.ex. i den metoden skriva "Application.Exit();" så kommer programmet avslutas när knappen trycks ner.

Permalänk
Permalänk
Medlem
Skrivet av Skyflyer:

Om du vill göra ett fönsterprogram istället för ett konsolprogram så startar du Visual Studio, väljer att skapa ett nytt projekt och välj sedan under C#:
Windows->Windows Forms Application

Då skapas ett enkelt fönsterprogram som är helt tomt förutom huvudfönstret. Du ser fönstret i designviewn. Markerar du fönstret kommer du se fönstrets Properties till höger. Där kan du ändra olika inställningar för fönstret som t.ex. vilken text du vill ha i ramen, bakgrundsfärg osv.

Sedan kan du börja dra ut komponenter från toolboxen till vänster i Visual Studio. Du kan t.ex. dra ut en knapp (Button) och släppa ner den på fönstret. Du kan dra runt knappen och placera den var du vill ha den, ändra storlek på den osv. Även knappen har properties som du kan ändra på som t.ex. text, färger, ikon osv. Dubbelklickar du på knappen i design viewn så kommer ett kodfönster öppnas och en tom metod skapas. Denna metod kommer anropas när användaren klickar på knappen.
Du kan t.ex. i den metoden skriva "Application.Exit();" så kommer programmet avslutas när knappen trycks ner.

Jo är medveten om windows applikations möjligheten, men har inte riktigt försått mig på det där riktigt. Men det är liksom det som är nästa steg ifrån Console applikationer? Console är mer lära sig koda stället ?

Hittar inget angående kodning i C# där :/ Endast HTML, python m.m.

Permalänk

http://thenewboston.org/list.php?cat=15

Har lärt mig en hel del av hans tutorials. Läser en kurs i C# just nu och vi använder en riktigt bra bok med massa övningar som man gör i Windows Forms (grafiskt).

Går av någon anledning inte att få tag på den längre i Sverige men finns på Amazon UK:
http://www.amazon.co.uk/Starting-Out-Visual-2012-CD-ROM/dp/01...

Dyr men e-boken är mkt billigare: http://www.coursesmart.co.uk/9780133250602?__hdv=6.8&__profes...

Visa signatur

HTPC: Late 2014 Mac Mini
Bärbar: Mid 2012 MacBook Air

Permalänk
Medlem
Skrivet av Supermotard:

http://thenewboston.org/list.php?cat=15

Har lärt mig en hel del av hans tutorials. Läser en kurs i C# just nu och vi använder en riktigt bra bok med massa övningar som man gör i Windows Forms (grafiskt).

http://www.amazon.co.uk/Starting-Out-Visual-2012-CD-ROM/dp/01...

Tack! Riktigt bra material!

Men om jag ställer om min fråga till:
Hur ska jag gå vidare i det programmet jag länka tex? Vad ska ett program ha mer än de funktioner jag har tänkt ut? För att kunna säga "Detta är min färdiga produkt". Jag menar.. sitta och trycka F5 hela nätterna får en ju inte att känna att man kommer någon vart.

Permalänk
Skrivet av Progrmor:

Tack! Riktigt bra material!

Men om jag ställer om min fråga till:
Hur ska jag gå vidare i det programmet jag länka tex? Vad ska ett program ha mer än de funktioner jag har tänkt ut? För att kunna säga "Detta är min färdiga produkt". Jag menar.. sitta och trycka F5 hela nätterna får en ju inte att känna att man kommer någon vart.

Gör ett nytt projekt där du gör om programmet till grafiskt med knappar, inmatningsfält, etiketter osv. Du kan använda mycket av den kod du redan har. Vet inte vilka mer funktioner programmet kan ha, har inte tittat så noga men gör alla funktionerna du har nu fast grafiskt med knappar där du t.ex. gör beräkningar, rensar fält, avslutar programmet, felhantering (vilket du hade med try/catch) osv. Om man vill köra programmet utanför VS så sparas det väl en .exe-fil i dina dokument/VS2012/projektmappen/bin/debug.

Vet inte om det gav några svar på din fråga, har trots allt bara läst C# 1 vecka

Visa signatur

HTPC: Late 2014 Mac Mini
Bärbar: Mid 2012 MacBook Air

Permalänk
Medlem
Skrivet av Supermotard:

Gör ett nytt projekt där du gör om programmet till grafiskt med knappar, inmatningsfält, etiketter osv. Du kan använda mycket av den kod du redan har. Vet inte vilka mer funktioner programmet kan ha, har inte tittat så noga men gör alla funktionerna du har nu fast grafiskt med knappar där du t.ex. gör beräkningar, rensar fält, avslutar programmet, felhantering (vilket du hade med try/catch) osv. Om man vill köra programmet utanför VS så sparas det väl en .exe-fil i dina dokument/VS2012/projektmappen/bin/debug.

Vet inte om det gav några svar på din fråga, har trots allt bara läst C# 1 vecka

Jo men det var ganska exakt vad jag var ute efter! Lite av en bekräftelse Vad jag ska gå vidare till. Då får jag plugga på Windows applikationer och få det funka i skallen!

Permalänk
Medlem

Att skriva in fler metoder i programmet du har kommer nog inte ge dig så mycket mer i ren kunskap. Då är ju alternativet, som redan sagts, att göra ett gränssnitt till det. Du kan ju också börja med att skapa program för att lösa vardagsproblem (kanske det du gjort ovan?). Exempelvis: skapa ett program för recept som sparas i en databas. Alltså, hitta något vardagsproblem som du skulle kunna lösa med ett program, skriv det och skulle du fastna, läs på och utveckla det efterhand som du lär dig mer.

Viktigaste är ju att du tycker det är roligt och vill utveckla både programmet och dig själv. Hade själv mycket hjälp av ett från början enkelt nummerspel som jag utvecklade från enklaste möjliga konsol till ett med gränssnitt, s.k. easter-eggs och dylikt.

Vad jag kan se så finns "Console.WriteLine("Thank you for using my program. Once again [///]" bara i calPerimeter, användaren ges inte möjligheten att köra igen om annan metod väljs?

Console.WriteLine("Processing...");
System.Threading.Thread.Sleep(2000); - kan förstå att du vill testa och det är i sig bra men det är meningslöst att behålla

Lycka till!

Edit: ett bra första steg till gränssnitt är ju att hantera all in- och utdata via dialogrutor, dvs. byt ut dina printline och readline mot dialogfönster och utforska dess möjligheter.

Permalänk
Medlem
Skrivet av DarkCC:

Att skriva in fler metoder i programmet du har kommer nog inte ge dig så mycket mer i ren kunskap. Då är ju alternativet, som redan sagts, att göra ett gränssnitt till det. Du kan ju också börja med att skapa program för att lösa vardagsproblem (kanske det du gjort ovan?). Exempelvis: skapa ett program för recept som sparas i en databas. Alltså, hitta något vardagsproblem som du skulle kunna lösa med ett program, skriv det och skulle du fastna, läs på och utveckla det efterhand som du lär dig mer.

Viktigaste är ju att du tycker det är roligt och vill utveckla både programmet och dig själv. Hade själv mycket hjälp av ett från början enkelt nummerspel som jag utvecklade från enklaste möjliga konsol till ett med gränssnitt, s.k. easter-eggs och dylikt.

Vad jag kan se så finns "Console.WriteLine("Thank you for using my program. Once again [///]" bara i calPerimeter, användaren ges inte möjligheten att köra igen om annan metod väljs?

Console.WriteLine("Processing...");
System.Threading.Thread.Sleep(2000); - kan förstå att du vill testa och det är i sig bra men det är meningslöst att behålla

Lycka till!

Edit: ett bra första steg till gränssnitt är ju att hantera all in- och utdata via dialogrutor, dvs. byt ut dina printline och readline mot dialogfönster och utforska dess möjligheter.

Ja, det var mest för att det såg lite fräkt ut jag hade threadsleep

Här har jag slängt ihop : http://fuskbugg.se/dl/c4DJvJ/ScreenShot008.bmp
Baserat på min förra kod. Fast nu då med fönster och knappar m.m
Ett hyffsat första försök? Funkar felfritt so far. ^^

Permalänk
Medlem

Glöm inte lära dig verktyget visual studio heller. Ex, vad är quick watch, step in, step out osv.
Teorin är också viktig. Vad hamnar i heap? Vad är en call stack, hur nås den i studio, hur hanterar man fel i koden osv

Permalänk
Medlem

Ingen har nämnt nått om att du kan utforska datalogi lite mer. T.ex. hur funkar regex-implementationer? Om du inte vet vad regex är så är det en notation för att beskriva strängar av text, och de kan man söka efter i dokument. T.ex. skriver jag regexet "ad+(b|c)" så betyder det "ett a, följt av ett eller flera d, följt av b eller c". Hur letar man sedan upp en sån sträng i en text på ett effektivt sätt? (Man kan göra det genom att bara gå igenom texten från början till slut, en gång.)

Annat problem: Säg att du har några tusen ord av 4 bokstäver var i en fil (t.ex. alla svenska ord med 4 bokstäver). Om du skriver t.ex. "stor", vad är kortaste vägen till "bord", om man med väg menar att du får byta ut en bokstav i taget, t.ex. "stor" -> "svor" -> "svar" -> "sval" -> ..., och bara gå på ord som finns i filen (d.v.s. på giltiga ord).

Vet du hur rekursion fungerar ens, förresten? Annars är det ett givet första steg.

Fokusera inte för mycket på GUIn (Graphical User Interface). Tänk på alla program som inte har GUIn: Alla typer av servrar: spelservrar, mailservrar, webbservrar, o.s.v.; kompilatorer; virtuella maskiner; verktyg som git, grep, ssh, (eller på windows) dir, find. Sen finns det många exempel på program som har ett GUI men som funkar utan, t.ex. Matlab, bildredigeringsprogram, o.s.v. Det finns även textbaserade IRC-klienter, mail-program, torrent-klienter, o.s.v. Förresten så kan du testa att skriva något av de ovannämnda.

Permalänk
Medlem
Skrivet av tufflax:

Ingen har nämnt nått om att du kan utforska datalogi lite mer. T.ex. hur funkar regex-implementationer? Om du inte vet vad regex är så är det en notation för att beskriva strängar av text, och de kan man söka efter i dokument. T.ex. skriver jag regexet "ad+(b|c)" så betyder det "ett a, följt av ett eller flera d, följt av b eller c". Hur letar man sedan upp en sån sträng i en text på ett effektivt sätt? (Man kan göra det genom att bara gå igenom texten från början till slut, en gång.)

Annat problem: Säg att du har några tusen ord av 4 bokstäver var i en fil (t.ex. alla svenska ord med 4 bokstäver). Om du skriver t.ex. "stor", vad är kortaste vägen till "bord", om man med väg menar att du får byta ut en bokstav i taget, t.ex. "stor" -> "svor" -> "svar" -> "sval" -> ..., och bara gå på ord som finns i filen (d.v.s. på giltiga ord).

Vet du hur rekursion fungerar ens, förresten? Annars är det ett givet första steg.

Fokusera inte för mycket på GUIn (Graphical User Interface). Tänk på alla program som inte har GUIn: Alla typer av servrar: spelservrar, mailservrar, webbservrar, o.s.v.; kompilatorer; virtuella maskiner; verktyg som git, grep, ssh, (eller på windows) dir, find. Sen finns det många exempel på program som har ett GUI men som funkar utan, t.ex. Matlab, bildredigeringsprogram, o.s.v. Det finns även textbaserade IRC-klienter, mail-program, torrent-klienter, o.s.v. Förresten så kan du testa att skriva något av de ovannämnda.

Vet inte vad rekursion är tyvärr Någon länk till en bra guide eller förklaring?

Permalänk
Medlem

Ett bra sätt att förbättra ditt program skulle kunna vara att flytta all (/det mesta av) din kod till Singletons; eller klasser med statiska medlemmar.

Permalänk
Medlem
Skrivet av Progrmor:

Vet inte vad rekursion är tyvärr Någon länk till en bra guide eller förklaring?

http://en.wikipedia.org/wiki/Recursion_%28computer_science%29

Wikipedia är en fantastisk sak......

Permalänk
Medlem
Skrivet av MrSir:

Ett bra sätt att förbättra ditt program skulle kunna vara att flytta all (/det mesta av) din kod till Singletons; eller klasser med statiska medlemmar.

Han har ju redan statiska medlemmar. Och Singletons är inte bra.

Permalänk
Medlem

Klart han ska göra en windows-applikation istället för ett konsollfönster, det är ett mycket bra första steg att kunna.

Sen kanske man gör en installer åt programmet - Finns färdiga att använda.

Nästa steg blir att kunna skapa lite config-filer och brottas med appsettings.

Sen kanske tråda upp applikationen lite?

Smack, in med en startup logga som fadas lite med någon directx-metod, får du smaka på det också.

Kan ju ta det där hur långt som helst!

Permalänk
Medlem
Skrivet av tufflax:

Han har ju redan statiska medlemmar. Och Singletons är inte bra.

Singletons är bra mycket trevligare än statics, åtminstone. Det kanske beror mer på vad exakt man menar med singletons iofs. De flesta system har någon sorts default-objekt någonstans som bara finns i en upplaga — för databasanslutning, översättningar eller liknande.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Ernesto:

Klart han ska göra en windows-applikation istället för ett konsollfönster, det är ett mycket bra första steg att kunna.

Sen kanske man gör en installer åt programmet - Finns färdiga att använda.

Nästa steg blir att kunna skapa lite config-filer och brottas med appsettings.

Sen kanske tråda upp applikationen lite?

Smack, in med en startup logga som fadas lite med någon directx-metod, får du smaka på det också.

Kan ju ta det där hur långt som helst!

Mm, och sen så kan han göra fönster och flashiga loggor men inte programmera. Det låter utmärkt.

Permalänk
Medlem
Skrivet av Teknocide:

Singletons är bra mycket trevligare än statics, åtminstone. Det kanske beror mer på vad exakt man menar med singletons iofs. De flesta system har någon sorts default-objekt någonstans som bara finns i en upplaga — för databasanslutning, översättningar eller liknande.

På vilka sätt är de trevligare?

Permalänk
Medlem
Skrivet av tufflax:

Mm, och sen så kan han göra fönster och flashiga loggor men inte programmera. Det låter utmärkt.

Vad menar du inte programmera? Det är ju en del av processen. Jag förstår om du tycker det är mer intressant med reguljära expressioner, men teori och logiskt problemlösning är ju bara en liten del av yrket. Man måste ju kunna leverera en användbar produkt också, speciellt om man är ny inom området är det ju, i alla fall enligt mig, mycket roligare när man ser resultat än när man grottar ner sig i teori och best-practice.

Kalle i 'Kalle och Hobbe' sa det väldigt bra: "En inlämningsuppgift får alltid en extra stjärna om man levererar den i en schysst proffsig plastmapp."

Vi funkar ju alla olika. Jag tycker det är att programmera att hooka in sig i DirectX api:et och fada in en bild medans ett program startar, samt kunna skapa ett användarvänligt trådat GUI. Du får ju tycka precis som du vill, men det var du som föreslog att en nybörjare i programmering skulle lära sig regexp och tyckte att det var en bra idé. Inte jag.

Permalänk
Hedersmedlem

Jag skulle säga att det enklaste är om du kan komma på något du vill skapa och låta det vägleda din inlärning. För mig har det alltid varit ganska meningslöst att följa random guider.

Jag vet att det finns böcker som tar dig igenom att skriva ett fullt fungerande program, men just nu kan jag inte komma på något exempel. Google kan kanske hjälpa dig. Det är i alla fall mycket bättre om man kan komma hela vägen från ax till limpa så att man även lär sig att lägga upp en strategi för att lösa ett problem.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av Ernesto:

Vad menar du inte programmera? Det är ju en del av processen. Jag förstår om du tycker det är mer intressant med reguljära expressioner, men teori och logiskt problemlösning är ju bara en liten del av yrket. Man måste ju kunna leverera en användbar produkt också, speciellt om man är ny inom området är det ju, i alla fall enligt mig, mycket roligare när man ser resultat än när man grottar ner sig i teori och best-practice.

Kalle i 'Kalle och Hobbe' sa det väldigt bra: "En inlämningsuppgift får alltid en extra stjärna om man levererar den i en schysst proffsig plastmapp."

Vi funkar ju alla olika. Jag tycker det är att programmera att hooka in sig i DirectX api:et och fada in en bild medans ett program startar, samt kunna skapa ett användarvänligt trådat GUI. Du får ju tycka precis som du vill, men det var du som föreslog att en nybörjare i programmering skulle lära sig regexp och tyckte att det var en bra idé. Inte jag.

Kan man programmera så är det lätt att göra ett GUI, det är bara läsa lite dokumentation. Det viktiga är att man kan 1) ett språk (eller fler) och 2) problemlösning (och där kan datalogi vara till stor hjälp). Jag tycker inte man ska röra GUIn de första året man programmerar, om man inte verkligen vill. Dessutom tycker jag problemlösning är en mycket större del av yrket än att göra GUIn. Utan problemlösning blir det ingen produkt alls.

Permalänk
Medlem
Skrivet av tufflax:

På vilka sätt är de trevligare?

Singletons är instanser av klasser: du kan skicka dem till metoder, ärva bastyper/implementera interfaces. Det går att unit- testa med en singleton, något som är omöjligt med statiska metoder.

Skickades från m.sweclockers.com

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Singletons är instanser av klasser: du kan skicka dem till metoder, ärva bastyper/implementera interfaces. Det går att unit- testa med en singleton, något som är omöjligt med statiska metoder.

Skickades från m.sweclockers.com

Det ju klart att det måste gå att testa statiska metoder, jag fattar inte riktigt vad du menar med att det inte skulle gå. Dessutom så verkar det lite konstigt att skicka runt något som borde vara statiskt, t.ex. Math.sin i Java. Kan du komma på nått exempel på nån klass som borde vara en singleton?

Men i alla fall, tur att man inte har några av dessa begränsningar eller problem i Clojure.

Permalänk
Medlem
Skrivet av tufflax:

Det ju klart att det måste gå att testa statiska metoder, jag fattar inte riktigt vad du menar med att det inte skulle gå. Dessutom så verkar det lite konstigt att skicka runt något som borde vara statiskt, t.ex. Math.sin i Java. Kan du komma på nått exempel på nån klass som borde vara en singleton?

Men i alla fall, tur att man inte har några av dessa begränsningar eller problem i Clojure.

En stor poäng med objektorientering är att man kan specifiera interfaces som kan uppfyllas av flera olika implementationer.
Statics går rakt emot detta då du vare sig kan skicka eller returnera statiska resurser, eller låta dem implementera ett interface. En singleton däremot kan implementera ett interface eftersom den tillhandahåller en faktisk instans av ett objekt och inte bara ett tomt skal runt ett gäng procedurer.

Statiska metoder är en krycka som ibland skapas för att möjliggöra åtkomst till utility-funktioner utan att ett objekt instantierats. Motsvarigheten i Clojure hade varit en funktion som inte går att skicka till, eller returnera från, en annan funktion.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Eftersom jag bara sitter & programmerar i C++ tänkte jag inte på att det finns statiska klasser i C#^^.

Tänkte liksom mest på strukturen, man kanske vill ha en funktion för att implementera nya ekvationer från en textfil.

T.ex. ett interface som används:

addEquation("Kalles ekvation", "sqrt(q)*fac(m)^b", "q|m|b");

Eller kanske (delegate?):

addFunc(FuncType PyramidVolym, "pv"); addEquation("", "pv(h,b)^99", "h|b");

Så kan man kanske hålla beräkningar helt skiljt från resten av programmet. Kanske lägga beräknings-delen i en dll-fil?

Permalänk
Medlem
Skrivet av Teknocide:

En stor poäng med objektorientering är att man kan specifiera interfaces som kan uppfyllas av flera olika implementationer.
Statics går rakt emot detta då du vare sig kan skicka eller returnera statiska resurser, eller låta dem implementera ett interface. En singleton däremot kan implementera ett interface eftersom den tillhandahåller en faktisk instans av ett objekt och inte bara ett tomt skal runt ett gäng procedurer.

Statiska metoder är en krycka som ibland skapas för att möjliggöra åtkomst till utility-funktioner utan att ett objekt instantierats. Motsvarigheten i Clojure hade varit en funktion som inte går att skicka till, eller returnera från, en annan funktion.

Ja jag förstår. Men jag kan inte komma på nån situation där det skulle vara bra med en singleton ändå. Behöver man implementera ett interface kan man göra en helt vanlig klass.