>>419
View定義
public interface FruitView{
 void displayFruit(Fruit fruit);
}

本当はイベント配送はフレームワークに管理させるべきところだけど>>409もリスナーとして
直接ViewをModelに貼り付けているのでコードの簡略のためmodelにViewの参照を持たせる。

public model FruitModel{
 List<FruitView> views;
 public void addView(FruitView view){this.views.add(view);}
 public Fruit getFruit(){...}
 public void setFruit(Fruit fruit){this.fruit = fruit; for(FruitView view: views) view.displayFruit(fruit);}
}

Viewの実装例
public class FruitViewImpl1 extends JPanel implements FruitView{
 JLabel name; JTextField quantity;
 public FruitViewImpl1(){ /* 子コンポーネントの生成とレイアウト */ }
 void displayFruit(Fruit fruit){
  this.name.setText(fruit.getText());
  this.quantity.setText(fruit.getQuantity());
 }
}

FruitModel model = new FruitModel();
FruitView view = new FruitViewImpl1();
model.addView(view);
model.setFruit(aFruit);

名寄せ? DuckTyping? 要らないよ。ちゃんとViewが実装の詳細と独立に抽象化されていれば。