演習問題2(ショッピングカート 一覧)


演習問題2-3 (Builder)

演習問題2-2 の List クラス、ListName クラス、ListDetail クラスを修正して、ショッピングカートに入れた商品の一覧が、実行結果のように自由に書式を変更できるようにしなさい。

また、FormatCsv や FormatHtml も作成してください。これらは一覧の書式を決定します。書式の種類が増えても、List クラス、ListName クラス、ListDetail クラスを変更しなくてもよいようにしなさい。


実行結果
牛肉*
トマト

牛肉 1,580円 400g
トマト 276円 4個

"牛肉*"
"トマト"

<table>
<tr><td>牛肉*</td></tr>
<tr><td>トマト</td></tr>
</table>

"牛肉","1,580円","400g"
"トマト","276円","4個"

<table>
<tr><td>牛肉</td><td>1,580円</td><td>400g</td></tr>
<tr><td>トマト</td><td>276円</td><td>4個</td></tr>
</table>


コード

Enshu203.java
public class Enshu203 { public static void main(String[] args) { Cart cart = new Cart(); cart.add(new Meat("牛肉", 395, 400)); cart.add(new Vegetable("トマト", 69, 4)); // 演習問題2-1 System.out.println(cart.getList(new ListName())); // 演習問題2-2 System.out.println(cart.getList(new ListDetail())); // 印(*)付き商品名の表示 System.out.println(cart.getList(new ListName(new FormatCsv()))); // CSV System.out.println(cart.getList(new ListName(new FormatHtml()))); // HTML テーブル // 全項目の表示 System.out.println(cart.getList(new ListDetail(new FormatCsv()))); // CSV System.out.println(cart.getList(new ListDetail(new FormatHtml()))); // HTML テーブル } }






演習問題2-3 (Builder)