なぜXMLを使用しようとしていますか? 「編集するためにプログラマーである必要はありません。」 しかし、これはナンセンスです! 私は自分でxmlを編集する普通の人(プログラマーではない)を見たことはありません! いずれのIDEでも、XMLファイルで手を突っ込んだり、他の波線を編集したりする必要がある日からあなたを救うことはありません。
次に、私のような単純な開発者にとってのco病と洗脳が何であるかを見てみましょう。
主な欠点は、XML構成では、長く知られている便利なOOP手法である継承とポリモーフィズムを使用できないことです。
例を考えてみましょう。 web.xmlファイルは2つあり、構成の一部(サーブレット、パラメーター、フィルターなどの宣言)は一方にあり、一部はもう一方にあります。
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<filter-name>filterA</filter-name>
<filter-class>ru.FilterA</filter-class>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<filter-name>filterB</filter-name>
<filter-class>ru.FilterB</filter-class>
</web-app>
そのため、web.xmlを使用して結合しません。 このような基本操作!..
Factoryメソッドを呼び出して構成を行った場合はどうすればよいですか? WebA親クラスを作成します
public class WebA implements WebConfig {
...
}
およびWebBの下位クラス
public class WebB extends WebA {
...
}
その後、あなたがする必要があるのはあなた自身の設定を作成することです:
<web-conf configClass="WebB" />
すべて! これは、XMLでは基本的に不可能なJavaの基本操作(およびすべての言語の操作)です。
もちろん、XML形式は非常に多く開発されているため、従来の言語とほぼ同じことを行うことができます。 たとえば、Maven POM形式では、「親」タグを指定することにより、「貧しい人々のための継承」が提供されます。
基本的に、Mavenでは依存関係などを継承できます。 ただし、「build」タグの中にあるものはどこにも継承されません! フォーマットの開発者がこれまで見ていないというだけです。典型的なプロジェクトではこれは必要ありません。 しかし実際には、これは通常、コピーと貼り付けの技術を使用することになります。
それでは、このゴミ全体のどれが結論ですか? 結論は、ファクトリメソッドを指定するよりも少し複雑な構成を取得するとすぐに、XMLから通常の言語に構成をすぐに転送します(スキーマをAPIに置き換えます)。そうしないと、プログラミング言語のすべての標準チップをXML形式で実装することによって常に苦しめられることになります。