35. 手続き型プログラミング // 「1から40までの」「整数の」「3か5で割れるものを」「コンソール出力」 for (int number = 1; number <= 40; number++) { if (number % 3 == 0 || number % 5 == 0) Console.WriteLine(number); } 「 1から40までの」 「3か5で割れるものを」「コンソール出力」それぞれが変更になるときどうなる?
36. オブジェクト指向プログラミング public abstract class Filter{ public abstract bool IsMatch(int number); } public abstract class UI{ public abstract void Show(int number); } public class TheCommand{ public Filter Filter { get; set; } public UI UI { get; set; } public void Run(IEnumerable data) { foreach (int number in data) { if (Filter.IsMatch(number)) UI.Show(number); } }} 「整数の」 が変更になるときどうなる?
37. ジェネリック プログラミング public abstract class Filter<T>{ public abstract bool IsMatch(T item); } public abstract class UI<T>{ public abstract void Show(T item); } public class TheCommand<T>{ public Filter<T> Filter { get; set; } public UI<T> UI { get; set; } public void Run(IEnumerable<T> data) { foreach (T item in data) { if (Filter.IsMatch(item)) UI.Show(item); } }}