1

たとえば、次のように1つのインターフェイスと多数のクラスがあります

public interface Drawable{
  void draw(); // draws something on screen for example.
}

abstract class Shape implements Drawable {...}
class Circle extends Shape{...} // assume that draw() is implemented in both classes.
class Square extends Shape{...} // ...

ここで、メインクラスがあり、次のことを実行するとします。

class Main{

Shape s1 = new Circle();
s1.draw(); // assume that this will draw a circle.

s1 = new Square();
s1.draw(); //assume that this will draw a square.

}

ここではデザインパターンを使用していますか?それともこれは単なる標準的なポリモーフィズムですか?これがデザインパターンの場合、それは何と呼ばれますか?

4

2 に答える 2

1
  • 私の意見では、デザインパターンは、問題を解決するためのコードを書くための実証済みの方法です。特定のデザインパターンを採用する方法は、使用するプログラミング言語によって大幅に異なる可能性があります。
  • デザインパターンが言語レベルでサポートされることはめったにありません(ただし、Groovyなどの新しい言語は言語レベルで特定のデザインパターンを実装します。たとえば、「メソッドオブジェクト」パターンは「クロージャー」と呼ばれる言語レベルの機能を使用してGroovyで提供されます)。
  • あなたが与えたコードは、OOPの基本的な概念の1つであるポリモーフィズムの例です。ただし、ポリモーフィズムは、多くのデザインパターンを実装するための基盤の1つです。
  • ポリモーフィズムは言語レベルでサポートされています。プログラムにコーディングできるものではありません。
于 2013-03-06T05:55:36.020 に答える
0

1998年に書かれたJavaの本があり、Amazonでまだ入手可能であり、第4章で、「Inteface」、「Abstract Superclass」、およびその他のものを「FundamentalDesignPatterns」と呼びました。

多くの人がこれらは「デザインパターン」ではなく単なる基本的なメカニズムであると言うので、この主張はやや物議をかもしました。

簡単に言えば、人々はあなたに両方の答えを与えるでしょうが、私の経験では、ほとんどの人はノーと言うでしょう。

于 2013-03-06T05:30:51.277 に答える