工場モードと一例モード
昨日の夜、工場モードの練習をしました.XML配置によって、工場で発生する具体的な種類を工場に伝えました.そうすると、もっと多くの種類のインターフェースが実現される時、XML配置を修正してもいいです.コードの修正の手間が省けます.
寝る時に考えてみたら、工場の種類を一つの例として使うことができます.そのほうが効果的です.私は一例では普通三つのステップがあると思います.具体的にはコードの中に詳しく説明があります.
コードを貼り付けてください.改善できるところがあれば、みんなで意見を発表して、一緒に向上します.
carインターフェース
small car類
ビッグcar類
テストマスタークラス
寝る時に考えてみたら、工場の種類を一つの例として使うことができます.そのほうが効果的です.私は一例では普通三つのステップがあると思います.具体的にはコードの中に詳しく説明があります.
コードを貼り付けてください.改善できるところがあれば、みんなで意見を発表して、一緒に向上します.
carインターフェース
package myFactoryDemo;
public interface car {
void run();
void stop();
}
small car類
package myFactoryDemo;
public class smallcar implements car {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("smallcar is running ");
}
@Override
public void stop() {
System.out.println("smallcar is stopped ");
}
}
ビッグcar類
package myFactoryDemo;
public class bigcar implements car {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("bigcar is running ");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("bigcar is stopped ");
}
}
carインターフェースを実現したクラスをすべてXMLを作成し、XMLファイルに入れます.package myFactoryDemo;
import java.io.* ;
import java.util.* ;
public class beforeFactory
{
public static void main(String args[]) throws Exception
{
Properties p = new Properties() ;
p.setProperty("s","myFactoryDemo.smallcar") ;
p.setProperty("b","myFactoryDemo.bigcar") ;
p.storeToXML(new FileOutputStream("zhw.xml"),"fhqxawfnh") ;
p.loadFromXML(new FileInputStream("zhw.xml")) ;
System.out.println(p) ;
}
};
テストマスタークラス
package myFactoryDemo;
import java.util.Properties;
public class myFactory {
public static void main(String args[]) {
Properties p = new Properties();
p = InitXML.getInstance().getPropertiesInit();
System.out.println(p);
//
System.out.print(" :");
String code = new InputData().getString();
car f = Factory.getInstance().getFruitInstance(p.getProperty(code));
if (f != null) {
f.run();
f.stop();
} else {
System.out.println(" 。");
}
}
}
テストの主な種類はいくつかのツール類を使って、以下で出して、もう一つ一つ紹介しません.package myFactoryDemo;
import java.io.FileInputStream;
import java.util.Properties;
public class InitXML {
//
private InitXML(){}
//
private static InitXML initxml = new InitXML();
public Properties getPropertiesInit() {
Properties p = new Properties();
try {
p.loadFromXML(new FileInputStream("zhw.xml"));
} catch (Exception e) {
}
return p;
}
//
public static InitXML getInstance() {
return initxml;
}
}
package myFactoryDemo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class InputData {
BufferedReader buf = null;
public InputData() {
buf = new BufferedReader(new InputStreamReader(System.in));
}
public String getString() {
String str = null;
try {
str = buf.readLine();
} catch (Exception e) {
}
return str;
}
}
package myFactoryDemo;
public class Factory {
private static Factory carfactory = new Factory();
private Factory(){}
public static Factory getInstance(){
return carfactory;
}
public car getFruitInstance(String type) {
car f = null;
// Class
try {
f = (car) Class.forName(type).newInstance();
} catch (Exception e) {
System.out.println(e);
}
return f;
}
}