在Java中,您经常会看到包含一些元文件的META-INF文件夹.这个文件夹的目的是什么,我可以放在那里?
这个简单工厂是否违反开放封闭原则?
每次需要创建新的具体产品时,SimpleProductFactory都需要更改,但它遵循单一责任原则,因为这是它永远改变的唯一原因.它的唯一目的是使客户不违反开放的封闭原则,所以我认为它本身不能违反,因为很明显这个代码是需要的.
我对更换工厂不感兴趣,但是这个具体的例子是否违规.
产品
interface Product{
public int getPrice();
}
Run Code Online (Sandbox Code Playgroud)
牛奶
class Milk implements Product{
public int getPrice(){ return 5; }
}
Run Code Online (Sandbox Code Playgroud)
芯片
class Chips implements Product{
public int getPrice(){ return 3; }
}
Run Code Online (Sandbox Code Playgroud)
SimpleProductFactory
class SimpleProductFactory{
public Product createProduct(String productName){
if(productName.equals("milk")){
return new Milk();
}
else if(productName.equals("chips")){
return new Chips();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
客户
class Client{
public static void main(String[] args) {
SimpleProductFactory productFactory = new SimpleProductFactory();
Product prod = productFactory.createProduct("milk");
System.out.println(prod.getPrice());
}
}
Run Code Online (Sandbox Code Playgroud) 我是开发JSF的新手(一般是Web开发的新手),我试图在页面上放置一个图像.我正在Eclipse中开发我的JSF应用程序并在Glassfish 3.1.2上运行它.我已将Glassfish注册为Eclipse中的服务器,并通过Eclipse运行应用程序.
我在xhtml页面上使用以下标记:
<h:graphicImage library="images" name="logo.png"/>
Run Code Online (Sandbox Code Playgroud)
我在META-INF/resources/images/logo.png中复制了图像.图像没有出现在页面上,当我查看页面源时,我看到了元素
<img src="RES_NOT_FOUND" />
Run Code Online (Sandbox Code Playgroud)
表示未找到图像.
当我将我的应用程序导出到war文件并通过autodeploy文件夹将其部署到Glassfish时,我得到相同的结果 - 页面显示,但图像不会出现.
任何人都可以建议为什么没有找到图像资源?