有关设计模式,我看了多少遍就忘了多少次!!!痛定思痛,决定开始记录下来。工厂模式总共分为3个小类型:
- 简单工厂模式:简单来说,就是创建一个工厂类。集中管理实现了同一个接口的类。比如说:现有接口A。类B实现接口A,类C实现A接口。现在创建一个工厂类D
public interface A{
void make();
}
public class B implements A{
@Override
public void make(){
System.out.print("我是B")
}
}
public class C implements A{
@Override
public void make(){
System.out.print("我是C")
}
}
public class Facetory{
private A a;
public A make(String make) {
if(make.equals("B")){
a = new B();
a.make()
}else
if(make.equals("A")){
a = new A();
}
return a;
}
public void static main(String[] args){
Facetory faceyory = new Facetory();
A a1 = faceyory.make("B");
a1.make();
//输出:我是B
}
}
缺点:
1、创建对象太依赖传入的参数,如传入参数有误,则不能创建对象。且跟工厂类耦合度很高,一旦工厂类出现错误,将连累整个系统逻辑
2、要新增产品类的时候,就要修改工厂类的代码,违反了开放封闭原则(对扩展的开放,对修改的关闭)。
优点:
1、相比起普通模式创建管理对象,较为集中方便。你想拥有哪个对象,你不用亲自去创建,也不用关心实现。只需要将你的需求告诉工厂类就行。只要你的需求准确,工厂就能给你提供你想要的。
隐藏实现,提供服务。很优秀的思想
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99058.html