2012-04-06 12 views
1

私は基本クラスFruitと子クラスのインスタンスAppleを持っています。 Appleインスタンスをデータベースに保存するにはどうすればよいですか? Appleがinstanceofの方法でAppleを検出したかどうかをチェックすると、良いデザインと見なされるかどうかは、insertFruitの方法でしょうか?基本クラスから派生したインスタンスを保存する

答えて

2

オブジェクトがサブクラスのインスタンスであるかどうかをチェックするメソッドをスーパークラスに持つのは良い設計とは思えません。後でバナナを追加したいのですが? insertFruit()に別のチェックを追加しますか?

多態性と一緒にAppleクラスのinsertFruit()メソッドをオーバーライドする方が良いと思います。

+0

あなたはそうです。何ができるかは、サブクラス固有のフィールドを保存してから、ベースクラスのフィールドのFruitのsaveメソッドを呼び出すようにオーバーライドすることです。 DBでは、これはアップルのための新しい記録として反映されるだろう、それはその後Fruitエントリーで使われているIDだ。 –

関連する問題