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

拓者室内设计论坛官方网网站优化和网站推广

拓者室内设计论坛官方网,网站优化和网站推广,如何建立公司网站是什么,后台网站怎么做视频工厂方法模式指定义一个创建对象的接口#xff0c;让子类决定实例化哪一个类。 结构关系如下#xff1a; 可以看到#xff0c;客户端创建了两个接口#xff0c;一个AbstractFactory#xff0c;负责创建产品#xff0c;一个Product#xff0c;负责产品的实现。ConcreteF…工厂方法模式指定义一个创建对象的接口让子类决定实例化哪一个类。 结构关系如下 可以看到客户端创建了两个接口一个AbstractFactory负责创建产品一个Product负责产品的实现。ConcreteFactory1与ConcreteFactory2实现了AbstractFactory的功能可以分别创建ConcreteProduct1和ConcreteProduct2产品对象两种产品对象实现了Product。 下面通过具体的案例说明工厂方法模式。 上述情景在实际开发中很常见通过在选择框中选择相应的选项系统会做出不同的响应。 从用户层面来说文本域可以作为我们需要的产品选择框可以作为工厂。 下面是具体的实现关系图。 我们先看一下工厂接口。 public interface PolicyProducer {public AutoInsurance getInsurObj(); } 可以看到AutoInsurance的实现类中可以通过getInsurObjla拿到产品对象。 再看一下产品接口。 public interface AutoInsurance {abstract String getInfo(); } 接口当中可以通过getInfo拿到产品的信息。 下面我们看一个产品。 public class BodyInjur implements AutoInsurance {private String description;public String getInfo() {description Body Injur Liability: \n\nBodily injury coverage pays for medical bills lost wages, rehabilitation, treatment and/or funeral costs for anyone injured or killed by your car. Such coverage will also pay for pain and suffering damages when a third party successfully sues. ;return description;} } 这个类实现了产品的接口把界面文本域中的信息存储在description中当工厂创建了这个对象界面系统就可以通过getInfo拿到文本域中的信息。 下面看一看生产这个产品的工厂。 public class BodyPolicy implements PolicyProducer {public AutoInsurance getInsurObj() {return new BodyInjur();} } 当需要创建一个产品的时候需要创建它的工厂在这个工厂当中通过getInsurObj获取对应的产品对象。 如果现在需要创建一个产品即在本案例中需要新增一种模式该怎么做呢 按照工厂方法模式需要新增两个类一个是工厂一个是产品。 LuxeryCarlnsurance.java public class LuxeryCarlnsurance implements AutoInsurance{private String description;public String getInfo() {description Body Injur Luxery: \n\nBodily injury coverage pays for medical bills lost wages, rehabilitation, treatment and/or funeral costs for anyone injured or killed by your car. Such coverage will also pay for pain and suffering damages when a third party successfully sues. ;return description;} }LuxeryCarPolicy.java public class LuxeryCarPolicy implements PolicyProducer{public AutoInsurance getInsurObj() {return new LuxeryCarlnsurance();} }当需要这种模式的时候你会打开选择框选择这种模式。 现在选择框里是没有这种模式的我们就需要向选择框里添加这种模式。 public static final String LUXERY Luxery; 这是定义模式的描述信息也就是我们在选择框里见到的。 对于java的swing编程只需要在组件中加入文本信息即可即 cmbInsuranceType new JComboBox();cmbInsuranceType.addItem(BODYINJURE);cmbInsuranceType.addItem(COLLISION);cmbInsuranceType.addItem(PERSONINJURE);cmbInsuranceType.addItem(PROPERTY);cmbInsuranceType.addItem(COMPREHENSIVE);cmbInsuranceType.addItem(LUXERY); 现在虽然可以显示了但目前为止只是更新了GUI界面。 下面直接创建模式对象即可。 if (type.equals(LUXERY)) {pp new LuxeryCarPolicy(); } 由此我们思考一个问题这种模式与直接创建有什么区别 如果我直接创建对象而不创建工厂需要怎么做 那是不是需要每次创建对象后都需要执行一定的操作。 if (type.equals(BODYINJURE)) {ppnew BodyPolicy();/** * */}else if (type.equals(COLLISION)) {ppnew CollPolicy(); /** * */}else if (type.equals(PERSONINJURE)) {pp new PersonPolicy(); /** * */}else if (type.equals(PROPERTY)) {pp new PropPolicy(); /** * */ } else if (type.equals(COMPREHENSIVE)) {pp new ComPolicy(); /** * */}else if (type.equals(LUXERY)) {pp new LuxeryCarPolicy(); /** * */}而工厂模式下统一进行了操作。 AutoInsurance ai pp.getInsurObj(); String desc ai.getInfo(); txtForInfo.setText(desc); 换句话说把对象的操作抽象成抽象类的方法。 即产品接口 下面给出工厂模式的优缺点。  主要优点 用户只需要知道具体工厂的名称就可得到想要的产品无须知道产品的具体创建过程。灵活性增强对于新产品的创建只需多写一个相应的工厂类。典型的解耦框架。高层模块只需要知道产品的抽象类无须关心其他实现类满足迪米特法则、依赖倒置原则和里氏替换原则。 主要缺点 类的个数容易过多增加复杂度增加了系统的抽象性和理解难度抽象产品只能生产一种产品此弊端可使用抽象工厂模式解决。   百度网盘  链接https://pan.baidu.com/s/1qTt3UV1BN16QFdtcIt_0fA?pwd3kgh  提取码3kgh
http://www.hkea.cn/news/14487770/

相关文章:

  • 网站怎么做app在线绘制流程图的网站
  • 苍南具城乡建设局网站教育类网站建设方案
  • 专业网站建设公司用织梦吗网站可分为哪两种类型
  • 网站风格分析asp动态链接生成网站地图
  • 文化管 网站建设规划linux网站开发
  • 淘客app定制开发百度关键词优化首选667seo
  • 番禺网站开发价格网站服务器关闭怎么恢复
  • 潍坊专业网站建设哪家便宜潍坊市建设监理协会网站
  • 有哪些网站做任务有佣金怎么做网站的seo优化
  • p2p网站开发价格公司财务记账软件
  • 加强校园网站建设方案wordpress kickstart
  • 网站开发简历的项目经验微信公众号登录平台入口
  • 鲜花便宜的网站建设wordpress提取某个分类文章
  • 设计网站推荐泉州企业自助建站系统
  • 贵金属网站源码哈尔滨信息工程学院
  • 如何管理企业网站wordpress 文章多图
  • 做微网站公司名称电脑网页翻译
  • 手机网站建设价格低天水企业网站建设
  • 昆明 做网站 vr怎么把asp网站改成php
  • 宿迁网站建设托管网页网站开发平台
  • 网站建设教程百度网盘帮建网站
  • 深圳购物商城网站设计企业网站开发说明
  • 国内好的设计网站wordpress同步发帖
  • 深圳做棋牌网站建设哪家公司便宜网店交易哪个平台好
  • 免费外贸建站平台西安建设工程网
  • 建网站公司成都我的网站为什么打不开怎么回事
  • 记事本做网站格式网站子目录设计
  • 成都知名网站建设合肥网站制作费用
  • 企业网站托管方案wordpress投票
  • 谷歌seo网站推广seo流量增加软件