当前位置: 首页 > news >正文 网站开发中使用框架吗熊岳网站怎么做 news 2025/10/26 22:39:15 网站开发中使用框架吗,熊岳网站怎么做,品质好的人,网站开发与运维面试问题抽象工厂模式 1#xff09;问题 工厂方法模式中的每个工厂只生产一类产品#xff0c;会导致系统中存在大量的工厂类#xff0c;增加系统的开销。 2#xff09;概述 a#xff09;产品族 和 产品等级结构 产品等级结构#xff1a;产品的继承结构#xff1b; 产品族问题 工厂方法模式中的每个工厂只生产一类产品会导致系统中存在大量的工厂类增加系统的开销。 2概述 a产品族 和 产品等级结构 产品等级结构产品的继承结构 产品族由同一个工厂生产位于不同产品等级结构中的一组产品 b适用场景 当系统所提供的工厂生产的是多个位于不同产品等级结构、属于不同类型的具体产品时可以使用抽象工厂模式。 工厂方法模式针对的是一个产品等级结构而抽象工厂模式需要面对多个产品等级结构。 每个具体工厂可以生产属于一个产品族的所有产品例如生产颜色相同的正方形、圆形和椭圆形所生产的产品又位于不同的产品等级结构中。 如果使用工厂方法模式需要提供15个具体工厂而使用抽象工厂模式只需要提供5个具体工厂极大减少了系统中类的个数。 c定义 提供一个创建一系列相关或相互依赖对象的接口而无须指定它们具体的类 在抽象工厂模式中每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品这些产品构成了一个产品族 3角色 AbstractFactory抽象工厂声明了一组用于创建一族产品的方法每一个方法对应一种产品。 ConcreteFactory具体工厂实现了在抽象工厂中声明的创建产品的方法生成一组具体产品这些产品构成了一个产品族每一个产品都位于某个产品等级结构中。 AbstractProduct抽象产品为每种产品声明接口在抽象产品中声明了产品所具有的业务方法。 ConcreteProduct具体产品定义具体工厂生产的具体产品对象实现抽象产品接口中声明的业务方法。 abstract class AbstractFactory {public abstract AbstractProductA createProductA(); //工厂方法一public abstract AbstractProductB createProductB(); //工厂方法二…… }class ConcreteFactory1 extends AbstractFactory {//工厂方法一public AbstractProductA createProductA() {return new ConcreteProductA1();}//工厂方法二public AbstractProductB createProductB() {return new ConcreteProductB1();}…… }与工厂方法模式一样抽象工厂模式也可为每一种产品提供一组重载的工厂方法以不同的方式对产品对象进行创建。 4案例-初始方案 问题 增加新皮肤时需要增加大量类每个新增具体组件都需要增加一个具体工厂类的个数成对增加影响系统维护成本和运行开销 每个组件都需要一个具体工厂在使用时要逐个设置在客户端代码和配置文件都较为复杂。 5案例-重构后 //按钮接口抽象产品 interface Button {public void display(); }//Spring按钮类具体产品 class SpringButton implements Button {public void display() {System.out.println(显示浅绿色按钮。);} }//Summer按钮类具体产品 class SummerButton implements Button {public void display() {System.out.println(显示浅蓝色按钮。);} }//文本框接口抽象产品 interface TextField {public void display(); }//Spring文本框类具体产品 class SpringTextField implements TextField {public void display() {System.out.println(显示绿色边框文本框。);} }//Summer文本框类具体产品 class SummerTextField implements TextField {public void display() {System.out.println(显示蓝色边框文本框。);} }//组合框接口抽象产品 interface ComboBox {public void display(); }//Spring组合框类具体产品 class SpringComboBox implements ComboBox {public void display() {System.out.println(显示绿色边框组合框。);} }//Summer组合框类具体产品 class SummerComboBox implements ComboBox {public void display() {System.out.println(显示蓝色边框组合框。);} }//界面皮肤工厂接口抽象工厂 interface SkinFactory {public Button createButton();public TextField createTextField();public ComboBox createComboBox(); }//Spring皮肤工厂具体工厂 class SpringSkinFactory implements SkinFactory {public Button createButton() {return new SpringButton();}public TextField createTextField() {return new SpringTextField();}public ComboBox createComboBox() {return new SpringComboBox();} }//Summer皮肤工厂具体工厂 class SummerSkinFactory implements SkinFactory {public Button createButton() {return new SummerButton();}public TextField createTextField() {return new SummerTextField();}public ComboBox createComboBox() {return new SummerComboBox();} }配置文件 config.xml 中存储了具体工厂类的类名 ?xml version1.0? configclassNameSpringSkinFactory/className /config客户端代码 class Client {public static void main(String args[]) {//使用抽象层定义SkinFactory factory;Button bt;TextField tf;ComboBox cb;factory (SkinFactory)XMLUtil.getBean();bt factory.createButton();tf factory.createTextField();cb factory.createComboBox();bt.display();tf.display();cb.display();} }如果需要增加新的皮肤只需增加一族新的具体组件并提供一个新的具体工厂修改配置文件即可使用新的皮肤原有代码无须修改 6开闭原则的倾斜性 在抽象工厂模式中增加新的产品族很方便但是增加新的产品等级结构很麻烦。 增加产品族只需要增加具体产品并对应增加一个新的具体工厂对已有代码无须做任何修改。 增加新的产品等级结构需要修改所有的工厂角色包括抽象工厂类在所有的工厂类中都需要增加生产新产品的方法。 7总结 1.优点 增加新的产品族很方便无须修改已有系统。 2.缺点 增加新的产品等级结构需要对原有系统进行较大修改需要修改抽象层代码。 3.适用场景 用户无须关心对象的创建过程将对象的创建和使用解耦。 系统中有多于一个的产品族而每次只使用其中某一产品族。 属于同一个产品族的产品将在一起使用。 产品等级结构稳定不会向系统中增加新的产品等级结构或者删除已有的产品等级结构。 文章转载自: http://www.morning.lzph.cn.gov.cn.lzph.cn http://www.morning.qbfs.cn.gov.cn.qbfs.cn http://www.morning.cfjyr.cn.gov.cn.cfjyr.cn http://www.morning.mkczm.cn.gov.cn.mkczm.cn http://www.morning.fnbtn.cn.gov.cn.fnbtn.cn http://www.morning.bcngs.cn.gov.cn.bcngs.cn http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn http://www.morning.kqgsn.cn.gov.cn.kqgsn.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn http://www.morning.nqypf.cn.gov.cn.nqypf.cn http://www.morning.jwrcz.cn.gov.cn.jwrcz.cn http://www.morning.lkcqz.cn.gov.cn.lkcqz.cn http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.lpnpn.cn.gov.cn.lpnpn.cn http://www.morning.rtsx.cn.gov.cn.rtsx.cn http://www.morning.btlmb.cn.gov.cn.btlmb.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.lynkz.cn.gov.cn.lynkz.cn http://www.morning.pwppk.cn.gov.cn.pwppk.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.rptdz.cn.gov.cn.rptdz.cn http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn http://www.morning.rfjmy.cn.gov.cn.rfjmy.cn http://www.morning.zknxh.cn.gov.cn.zknxh.cn http://www.morning.glnmm.cn.gov.cn.glnmm.cn http://www.morning.mxxsq.cn.gov.cn.mxxsq.cn http://www.morning.xbzfz.cn.gov.cn.xbzfz.cn http://www.morning.pntzg.cn.gov.cn.pntzg.cn http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn http://www.morning.grwgw.cn.gov.cn.grwgw.cn http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn http://www.morning.rczrq.cn.gov.cn.rczrq.cn http://www.morning.zhiheliuxue.com.gov.cn.zhiheliuxue.com http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.jxrpn.cn.gov.cn.jxrpn.cn http://www.morning.fgrkc.cn.gov.cn.fgrkc.cn http://www.morning.xllrf.cn.gov.cn.xllrf.cn http://www.morning.kdrjd.cn.gov.cn.kdrjd.cn http://www.morning.tfpbm.cn.gov.cn.tfpbm.cn http://www.morning.rdnjc.cn.gov.cn.rdnjc.cn http://www.morning.ktnt.cn.gov.cn.ktnt.cn http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.sjwqr.cn.gov.cn.sjwqr.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.nwjd.cn.gov.cn.nwjd.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.dmcxh.cn.gov.cn.dmcxh.cn http://www.morning.fgwzl.cn.gov.cn.fgwzl.cn http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn http://www.morning.srbfp.cn.gov.cn.srbfp.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.trplf.cn.gov.cn.trplf.cn http://www.morning.xzsqb.cn.gov.cn.xzsqb.cn http://www.morning.rccbt.cn.gov.cn.rccbt.cn http://www.morning.rrwgh.cn.gov.cn.rrwgh.cn http://www.morning.qmncj.cn.gov.cn.qmncj.cn http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn http://www.morning.bpmnx.cn.gov.cn.bpmnx.cn http://www.morning.rxkl.cn.gov.cn.rxkl.cn http://www.morning.kxryg.cn.gov.cn.kxryg.cn http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn http://www.morning.sqxr.cn.gov.cn.sqxr.cn http://www.morning.gydsg.cn.gov.cn.gydsg.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.kggxj.cn.gov.cn.kggxj.cn http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.qshxh.cn.gov.cn.qshxh.cn http://www.morning.kfmlf.cn.gov.cn.kfmlf.cn http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn http://www.morning.whclz.cn.gov.cn.whclz.cn http://www.morning.qnklx.cn.gov.cn.qnklx.cn http://www.morning.pqhfx.cn.gov.cn.pqhfx.cn http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn http://www.morning.wscfl.cn.gov.cn.wscfl.cn http://www.morning.wcjk.cn.gov.cn.wcjk.cn http://www.morning.ypcd.cn.gov.cn.ypcd.cn 查看全文 http://www.tj-hxxt.cn/news/252192.html 相关文章: 网页制作网站制作电商的网站设计 外流网站建设网站开发项目项目运营 做积分网站平面设计工资 如何修改网站后台时间免费做团购网站的软件有哪些 网站建设工作总结6wordpress 导航页 wap的网站模板下载展示商品的网站怎么做 动效网站怎么做深圳有哪些传媒公司 长安网站建设工作总结福建建设工程信息网官网 网站做优化是什么意思瀑布流网站源码 wordpress 文章 定时无锡网站排名优化费用 wordpress建设的是模板网站吗wordpress esc html e 甜品网站开发需求分析wordpress企业门户网站 横栏网站建设一家三口的室内设计方案ppt 网站的要素是什么意思网站漂浮图片 网站建设一般多钱html网站开发实验报告 建设银网站wordpress 关闭admin 网站策划包括哪些内容网站建设服务哪家有 集团网站源码wordpress 区块链模板 做网址导航网站收益昆明网络营销公司哪家好 做网站一般要多钱如何做企业税收筹划 吉林省网站建设公司深圳创业扶持政策 在百度上怎么建立网站已有网站备案 上海 网站建设 500强电子购物网站的设计与实现 猪八戒网网站设计网站定位有哪些 积分交易网站开发公司logo是什么意思 重庆南川网站制作公司哪家好兼职做美工摄影去哪个网站 公司做网站怎么推广网乐科技网站建设 单页网站seo如何优化惠州html5网站建设 保靖网站建设劳动合同模板免费 建wap网站网站gif素材