2016-08-02 10 views
-1

文字列変数に基づいてオブジェクトを返すファクトリクラスを作成したいと思います。たとえば:Javaドライバのデザインファクトリ

public class BrowserFactory 
{ 
    public BrowserFactory(String browser) 
    { 
     switch (browser.toLowerCase()) 
     { 
      case "chrome": 
      { 
       new ChromeDriver(); 
       break; 
      } 
      case "firefox": 
      { 
       new FirefoxDriver(); 
       break; 
      } 
      case "explorer": 
      { 
       new InternetExplorerDriver(); 
       break; 
      } 
      case "edge": 
      { 
       new EdgeDriver(); 
       break; 
      } 
     } 
    } 
} 

私はそれをこの方法を使用したい:

BrowserFactory sd = new BrowserFactory("chrome"); 

あなたはこのコードを設計するためにいくつかのより良い方法を提案することはできますか?

+1

は、あなたが再びaboud工場の設計を読むべきだと思います – Jens

答えて

2

あなたの工場がすべきは次のようになります。

public class BrowserFactory 
{ 
    private BrowserFactory(){ 
    } 
    public static RemoteWebDriver getDriver(String browser) 
    { 
     switch (browser.toLowerCase()) 
     { 
      case "chrome": 
      { 
       return new ChromeDriver(); 
      } 
      case "firefox": 
      { 
       return new FirefoxDriver(); 
      } 
      case "explorer": 
      { 
       return new InternetExplorerDriver(); 
      } 
      case "edge": 
      { 
       return new EdgeDriver(); 
      } 
      default: throw new IllegalArgumentException("Browser not supported") 

     } 
     return null; 
    } 

} 

そして、あなたはそれを呼び出す:

RemoteDriver rd = BrowserFactory.getDriver("chrome"); 
関連する問題