抽象工厂
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。
抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。
因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。
public class AbstractFactoryActivity extends AppCompatActivity {
private String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_abstract_factory);
//抽象工厂模式
Provider provider=new SendMailFactory();
Sender sender3=provider.produce();
str=sender3.Send();
Toast.makeText(AbstractFactoryActivity.this,str, Toast.LENGTH_SHORT).show();
}
}
public interface Provider {
Sender produce();
}
public class SendMailFactory implements Provider {
@Override
public Sender produce() {
return new MailSender();
}
}
public class SendSmsFactory implements Provider {
@Override
public Sender produce() {
return new SmsSender();
}
}
抽象工厂模式的好处:
如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现Provider接口,
就OK了,无需去改动现成的代码。这样做,拓展性较好!
github地址:https://github.com/zyj18410105150/DesignMode