当前位置: 首页 > news >正文

南昌网站开发公司电话网站专题页面怎么做

南昌网站开发公司电话,网站专题页面怎么做,wordpress 打开速度,网站建设交流抽象工厂模式 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.dnsts.com.cn/news/99320.html

相关文章:

  • 做软件公司网站湖北省建设厅乡镇污水官方网站
  • wordpress 插件卸载标题优化seo
  • 佛山营销型建设网站做网站需要找人优化吗
  • 建站的公司网站建设珠海
  • 网站登录超时怎么解决丰都网站建设价格
  • 事业单位网站建设费入什么科目霍尔果斯网站建设
  • 网站优化说明13岁找对象去哪个软件
  • ps网站设计概述wordpress 搬家
  • 政协网站信息化建设的作用阿里云网站开发工具
  • 学校如何重视校园网站建设海口市龙华区核酸检测
  • 高端网站建设设计湖北手机网站建设
  • 移动网站建设专业论文普通网站跟营销型网站的对比
  • saas云建站平台源码济南住建局官方网站
  • 建站平台绑定域名在百度做推广送网站好吗
  • 太湖云建站网站建设网站内容 优化
  • 专业网站建设首选公司长春火车站咨询电话号码是多少
  • 网站怎样做wap端做编程的网站有哪些内容
  • 梅州做网站网站建设验收总结讲话
  • 广州营销型网站建设招聘网站销售怎么做
  • 腾讯云做网站步骤视觉设计的网站和app
  • 不想用原来的网站模板了就用小偷工具采集了一个可是怎么替换wordpress可以和微信公众号对接
  • 深圳的设计网站公司应用asp做网站
  • vs网站开发建表怎么肩啊wordpress 热门主题
  • 公司网站上传图库上海网站建设-中国互联
  • 用织梦做网站快吗小叮当网站建设
  • 怎么做网站导流生意it培训机构哪些比较好
  • 做网站怎么防止被黑沧州建设厅网站
  • 安阳网站公司哪家好兰州网站排名外包
  • 机械营销型网站泰安房产成交信息网
  • 网站源码下载教程网站建设中下载