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

有做网站运营的吗自己做投票网站怎么弄

有做网站运营的吗,自己做投票网站怎么弄,免费手机h5模板网站模板,开公司流程及费用2022最新工厂方法模式 简单工厂模式的不足模式动机模式定义模式结构模式分析模式实例与解析 简单工厂模式的不足 在简单工厂模式中#xff0c;只提供了一个工厂类#xff0c;该工厂类处于对产品类进行实例化的中心位置#xff0c;它知道每一个产品对象的创建细节#xff0c;并决定… 工厂方法模式 简单工厂模式的不足模式动机模式定义模式结构模式分析模式实例与解析 简单工厂模式的不足 在简单工厂模式中只提供了一个工厂类该工厂类处于对产品类进行实例化的中心位置它知道每一个产品对象的创建细节并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时必须修改工厂类加入必要的处理逻辑这违背了“开闭原则”。在简单工厂模式中所有的产品都是由同一个工厂创建工厂类职责较重业务逻辑较为复杂具体产品与工厂类之间的耦合度高严重影响了系统的灵活性和扩展性而工厂方法模式则可以很好地解决这一问题。 模式动机 考虑这样一个系统按钮工厂类可以返回一个具体的按钮实例如圆形按钮、矩形按钮、菱形按钮等。在这个系统中如果需要增加一种新类型的按钮如椭圆形按钮那么除了增加一个新的具体产品类之外还需要修改工厂类的代码这就使得整个设计在一定程度上违反了“开闭原则”。 现在对该系统进行修改不再设计一个按钮工厂类来统一负责所有产品的创建而是将具体按钮的创建过程交给专门的工厂子类去完成我们先定义一个抽象的按钮工厂类再定义具体的工厂类来生成圆形按钮、矩形按钮、菱形按钮等它们实现在抽象按钮工厂类中定义的方法。这种抽象化的结果使这种结构可以在不修改具体工厂类的情况下引进新的产品如果出现新的按钮类型只需要为这种新类型的按钮创建一个具体的工厂类就可以获得该新按钮的实例这一特点无疑使得工厂方法模式具有超越简单工厂模式的优越性更加符合“开闭原则”。 模式定义 工厂方法模式(Factory Method Pattern)又称为工厂模式也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式它属于类创建型模式。在工厂方法模式中工厂父类负责定义创建产品对象的公共接口而工厂子类则负责生成具体的产品对象这样做的目的是将产品类的实例化操作延迟到工厂子类中完成即通过工厂子类来确定究竟应该实例化哪一个具体产品类。 模式结构 工厂方法模式包含如下角色 Product抽象产品ConcreteProduct具体产品Factory抽象工厂ConcreteFactory具体工厂 模式分析 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了面向对象的多态性工厂方法模式保持了简单工厂模式的优点而且克服了它的缺点。在工厂方法模式中核心的工厂类不再负责所有产品的创建而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口而不负责哪一个产品类被实例化这种细节这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。 当系统扩展需要添加新的产品对象时仅仅需要添加一个具体产品对象以及一个具体工厂对象原有工厂对象不需要进行任何修改也不需要修改客户端很好地符合了“开闭原则”。而简单工厂模式在添加新产品对象后不得不修改工厂方法扩展性不好。工厂方法模式退化后可以演变成简单工厂模式。 模式实例与解析 实例一电视机工厂 将原有的工厂进行分割为每种品牌的电视机提供一个子工厂海尔工厂专门负责生产海尔电视机海信工厂专门负责生产海信电视机如果需要生产TCL电视机或创维电视机只需要对应增加一个新的TCL工厂或创维工厂即可原有的工厂无须做任何修改使得整个系统具有更加的灵活性和可扩展性。 ?xml version1.0? configclassNameHaierTVFactory/className /configpublic interface TV {public void play(); }public class HaierTV implements TV {public void play(){System.out.println(HaierTV......);} } public class HisenseTV implements TV {public void play(){System.out.println(HisenseTV......);} }public interface TVFactory {public TV produceTV(); }public class HaierTVFactory implements TVFactory {public TV produceTV(){System.out.println(HaierTVFactory。。。);return new HaierTV();} }public class HisenseTVFactory implements TVFactory {public TV produceTV(){System.out.println(HisenseTVFactory。。。);return new HisenseTV();} }public class Client {public static void main(String args[]){try{TV tv;TVFactory factory;factory(TVFactory)XMLUtil.getBean();tvfactory.produceTV();tv.play();}catch(Exception e){System.out.println(e.getMessage());}} } import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.SAXException; import java.io.*; public class XMLUtil {public static Object getBean(){try{//ĵDocumentBuilderFactory dFactory DocumentBuilderFactory.newInstance();DocumentBuilder builder dFactory.newDocumentBuilder();Document doc; doc builder.parse(new File(config.xml)); //ȡıڵNodeList nl doc.getElementsByTagName(className);Node classNodenl.item(0).getFirstChild();String cNameclassNode.getNodeValue();//ͨʵ䷵Class cClass.forName(cName);Object objc.newInstance();return obj;} catch(Exception e){e.printStackTrace();return null;}} }
http://www.zqtcl.cn/news/598828/

相关文章:

  • 免费创建手机网站上海网站设计建设
  • 校园网站建设招标公告网站开发常用问题
  • 信息公开和网站建设工作总结开网站建设公司赚钱吗
  • 恋月wordpress主题优化大师兑换码
  • 河南省住房和城乡建设厅网站查证网页设计大赛海报
  • 莱芜金点子信息港厂房出租国内正规seo网络推广
  • 番号网 wordpressseo搜索排名影响因素主要有
  • 网站后台开发语言中山市网站建设
  • 可以免费下源码的网站石家庄市里的网站公司
  • wordpress的别名获得页面的别名优化大师电视版
  • 怎么查网站关键词排名微信上的h5页面是怎么制作的
  • 如何为一个网站做app手机软件大全
  • 哪家网络公司做网站工信部网站原来是
  • json取数据做网站asp网站 模板
  • 漳州做网站多少钱乐清网红餐厅
  • 淮安网站开发sem推广案例
  • 义乌网站建设郭云砺信息科技做网站
  • 重庆御临建筑公司官网网站更换域名seo
  • 北京大兴专业网站建设公司wordpress 加速乐
  • win7怎么做网站域名绑定邯郸最新通知今天
  • 苏州企业网站设计开发个人 网站备案
  • 威海哪有网站建设中国建设部网站失信名单
  • 重庆哪家在做网站建设php网站后台验证码不显示
  • 开发网站开票写什么google收录查询
  • dw做的网站如何上传图片服务器配置wordpress
  • 恩施网站优化七牛云可以做网站的存储空间吗
  • 网站建设的源代码有什么作用网站维护包括哪些
  • 广东广东网站建设工作网站qq登录 开发
  • 中山网页网站设计模板access 数据库做网站
  • 阿里云网站做网站的服务器用什么系统