Pattern di programmazione - Struttura dati singoli - Metodi multipli [chiuso]

-2

Ho una singola struttura dati che contiene una quantità relativamente piccola di oggetti (circa 1500) e diversi metodi che agiscono su di essa. Esiste un modello di programmazione per iterare i metodi sui dati invece di scrivere un codice boilerplate significativamente più?

    
posta narain 28.09.2015 - 11:01
fonte

1 risposta

-1

Non penso che ci sia un modello di design per questo. È troppo semplice essere uno schema, credo.

Hai un elenco di oggetti e un elenco di funzioni e vuoi il prodotto cartesiano di questi due elenchi, ad es.

objects := [10, 20, 30]
functions := [add1, subtract1]

product := functions.product(objects)
// product looks like this:
// [(add1, 10), (subtract1, 10), (add1, 20), (subtract1, 20), (add1, 30), (subtract1, 30)]

product.map((fn, o) => fn(o))
// => [11, 9, 21, 19, 31, 29]

In C #, sembrerebbe un po 'come questo (non so davvero C #, quindi prendilo con un pizzico di sale):

using System;
using System.Collections.Generic;
using System.Linq;

class Prog
{
    static int add1(int i) => i + 1;
    static int sub1(int i) => i - 1;

    public static void Main(string[] args) {
        var objs = new List<int> { 10, 20, 30 };
        var funs = new List<Func<int, int>> { add1, sub1 };

        var result = 
            from obj in objs 
            from fun in funs 
            select fun(obj);

        result.ToList().ForEach(Console.WriteLine);
        // 11
        // 9
        // 21
        // 19
        // 31
        // 29
    }
}
    
risposta data 29.09.2015 - 02:13
fonte

Leggi altre domande sui tag