60
1
// product
2
public abstract class Card {}
3
4
// concrete product
5
public class BicycleCard : Card {}
6
7
// concrete product
8
public class BeeCard : Card {}
9
10
// creator
11
public abstract class CardPrinter
12
{
13
// factory method
14
protected abstract Card CreateCard();
15
16
// operation
17
public string PrintCard()
18
{
19
var card = CreateCard();
20
return card.ToString();
21
}
22
}
23
24
// concrete creator
Cached Result