这个简单工厂是否违反开放封闭原则?
每次需要创建新的具体产品时,SimpleProductFactory都需要更改,但它遵循单一责任原则,因为这是它永远改变的唯一原因.它的唯一目的是使客户不违反开放的封闭原则,所以我认为它本身不能违反,因为很明显这个代码是需要的.
我对更换工厂不感兴趣,但是这个具体的例子是否违规.
产品
interface Product{ public int getPrice(); }
牛奶
class Milk implements Product{ public int getPrice(){ return 5; } }
芯片
class Chips implements Product{ public int getPrice(){ return 3; } }
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; } }
客户
class Client{ public static void main(String[] args) { SimpleProductFactory productFactory = new SimpleProductFactory(); Product prod = productFactory.createProduct("milk"); System.out.println(prod.getPrice()); } }
解决方法
原文地址:https://www.jb51.cc/java/129265.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。