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

镇江建设网站公司网站数据分析案例

镇江建设网站公司,网站数据分析案例,哪些经营范围是包含网站开发的,中金超钒 网站建设在开发组件的时候比如button、text等#xff0c;需要对这些组件做比较多的初始化工作#xff0c;比如初始化长度等。传统的开发方案如下#xff1a; 图 传统开发方案UML 上面的方案组件创建及组件的其他业务操作耦合在一起#xff0c;违背了单一职责原则#xff1b;在客户… 在开发组件的时候比如button、text等需要对这些组件做比较多的初始化工作比如初始化长度等。传统的开发方案如下 图 传统开发方案UML 上面的方案组件创建及组件的其他业务操作耦合在一起违背了单一职责原则在客户端Client需要知道具体的组件类名才能创建对应的组件。 1 工厂方法模式概述 定义一个用于创建对象的接口让子类决定将哪一个类实例化。针对不同的产品提供不同的工厂系统提供一个与产品等级结构对应的工厂等级。 图 工厂方法模式UML Product: 抽象产品类是工厂模式所创建对象的超类型也是产品对象的公共父类。 ConcreteProduct: 具体的产品类由专门的具体工厂创建具体工厂和具体产品之间一一对应。 Factory: 抽象工厂类声名了创建产品的方法是工厂方法模式的核心所有创建对象的工厂类都必须实现该接口。 ConcreteFactory: 具体的工厂类实现了抽象工厂类中定义的工厂方法可有客户端调用返回一个具体产品类的实例。 1.1 工厂方法模式实现上述需求 public abstract class Module {private double width;private double height;private String name;public double getWidth() {return width;}public void setWidth(double width) {this.width width;}public double getHeight() {return height;}public void setHeight(double height) {this.height height;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return name { width width , height height };} }public class ButtonModule extends Module{}public class TextModule extends Module{ }/*** 在开发组件的时候比如button、text等需要对这些组件做比较多的初始化工作比如初始化长度等。*/ public interface Factory {Module create();}public class ButtonFactory implements Factory{Overridepublic Module create() {ButtonModule module new ButtonModule();module.setHeight(100.0);module.setName(button);// 其他初始化工作return module;} }public class TextFactory implements Factory{Overridepublic Module create() {TextModule textModule new TextModule();textModule.setName(text);textModule.setHeight(123);//其他初始化操作return textModule;} } 为了让系统具有更好的灵活性和可扩展性客户端创建工厂对象时不再通过new关键字而是通过存储在配置文件里的具体工厂类的类名使用反射机制来创建具体的工厂。优化如下 ?xml version1.0 encodingUTF-8? configclassNamecom.huangmingfu.factory_method.ButtonFactory/className /configpublic class FactoryMethodXmlUtil {public static Object getBean() {try {DocumentBuilderFactory dFactory DocumentBuilderFactory.newInstance();DocumentBuilder documentBuilder dFactory.newDocumentBuilder();Document document documentBuilder.parse(FactoryMethodXmlUtil.class.getClassLoader().getResourceAsStream(factory_method/concrete-factory.xml));NodeList nodeList document.getElementsByTagName(className);Node node nodeList.item(0).getFirstChild();String className node.getNodeValue();Class? aClass Class.forName(className);return aClass.newInstance();} catch (Exception e) {e.printStackTrace();return null;}}}public class Client {public static void main(String[] args) {Factory factory;factory (Factory) FactoryMethodXmlUtil.getBean();assert factory ! null;System.out.println(factory.getClass());Module module factory.create();System.out.println(module);}}2 优缺点 2.1 优点 1向客户隐藏了产品类实例化细节用户只需关心所需产品对应的工厂无须关心创建细节甚至无需知道具体产品类的类名 2扩展性好符合开闭原则。 2.2 缺点 1添加新的产品时需要编写新的具体产品类及对应的具体工厂类使得系统中类的个数成对增加增加了系统复杂度及开销。 3 适用场景 客户不知道所需要的对象的类只知道所对应的工厂。对象创建时需初始化操作多。
http://www.hyszgw.com/news/90798.html

相关文章:

  • 营销型网站建站推广企业网站建设免备案
  • 西安网站建设流程对重庆电子政务网站建设评价
  • 空壳网站清理通知百度小说风云榜2022
  • 汕头网站建设哪家好网址导航的优缺点
  • 可以做动态影集的网站14亿有多少中国人打了新冠疫苗
  • 易语言做网站视频中国最新军事新闻西陆网
  • 兵团第二师建设环保局网站网络公司网站建设服务
  • 哪个网站做外贸好绛帐做企业网站
  • 合肥网站seo重庆车牌制作
  • 外贸网站建设公司报价dokcer wordpress
  • 淄博企业网站建设有限公司如何建设网站推广平台
  • wordpress 网站费用内蒙古网站建设 阿里巴巴
  • 推广网站建设网站升级建设费用
  • 自动化的网站建设群晖wordpress换端口
  • 建立自己的网站怎么样做app嵌入手机网站
  • 2017网站发展趋势东营有哪些制作网站
  • 网站开发的好处和弊端小红书小程序入口
  • 章丘营销型网站设计公司西安网站seo技术厂家
  • wordpress配置京东云沈阳关键词优化费用
  • 服装外贸网站设计网站开发实施方案进度
  • 成都市新津县建设局官方网站wordpress.or
  • 网站建设必备寮步做网站
  • 怎样用8uftp做网站广州网站建设吧
  • 我的世界做弊端网站大兴网站建设公司电话
  • 网站 目录访问网站建设怎么搭建服务器
  • 怎样把自己做的网站发到网上网站建设ningqueseo
  • 西安企业建站在哪里做西宁企业做网站
  • 在线做gif图网站专题制作 wordpress
  • 建产品网站怎么做wordpress百度
  • 网站怎么做用什么软件惠州网站制作费用