2 抽象工厂模式(Abstract Factory)

来源:互联网 发布:著名时装插画师知乎 编辑:程序博客网 时间:2024/06/01 21:17
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了


 
 

//接口public interface Sender {    public void Send();}//实现类1public class MailSender implements Sender {     public void Send() {        System.out.println("mail sender");     } }//实现类2public class SMSSender implements Sender {     public void Send() {        System.out.println("SMS sender");     } }

 


  1. //抽象工厂1public class SendMailFactory implements Provider {    public Sender produce() {        return new MailSender();    }}//抽象工厂2public class SMSSenderFactory implements Provider {    public Sender produce() {        return new SMSSender();    }}//抽象工厂测试public class AbstractFactoryTest {    public static void main(String[] args) {        Provider pro = new SendMailFactory();        Sender sender = pro.produce();        sender.Send();    }}

     


     

其实这个模式的好处就是,如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码。这样做,拓展性较好!
 
 
 



来自为知笔记(Wiz)



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两岁的宝宝胆子小怎么办 孕中期发烧38度怎么办 小班社会交往教案有垃圾怎么办 两个月婴幼儿哭闹入睡难怎么办 8岁儿童睡觉困难怎么办 做精细动作手抖怎么办 15个月宝宝缺锌怎么办 八个月宝宝有蛔虫怎么办 两个月婴儿缺锌怎么办 婴儿天热出汗多尿少怎么办 婴儿5个月不主动抓东西怎么办 打疫苗吃了辣怎么办 四个月宝宝枕秃怎么办 四个月的孩子缺钙怎么办 小孩张牙齿会发烧怎么办 对节白蜡叶子干了怎么办 刷机字库坏了怎么办 魅蓝返回键失灵怎么办 牙蛀严重且牙根松动怎么办 蛀牙伤到神经了怎么办 给客户发错邮件怎么办外贸 cf没有枪声和脚步声怎么办 穿越火线fps太低怎么办 win10玩cf没有声音怎么办 儿子死了欠的钱怎么办 儿子欠银行的钱怎么办 惹了社会上的混混怎么办 我是五年级惹上混混怎么办 孩子挨欺负家长怎么办幼儿园 孩子被同学欺负不敢上学怎么办 孩子被欺负不敢还手怎么办 2个月的婴儿内热怎么办 孩子把别人打了怎么办 学生在学校被打怎么办 妈和老丈人搞外遇怎么办? 丈人住在双方出资房中怎么办 金木水火土缺水怎么办? 练太极注意不集中怎么办 白色裙子被染色了怎么办 两边的头发向外翘怎么办 感冒的前兆来了怎么办