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

竞拍网站大竞技btoc篇广州seo诊断

竞拍网站大竞技btoc篇,广州seo诊断,江苏有哪些网站建设的公司,有合作社做网站得不江城子乙卯正月二十日夜记梦 目的动机简单工厂示例代码 目的 定义一个创建对象的接口,该接口的子类具体负责创建具体的对象。工厂方法模式将对象的实例化延迟到子类。简单工厂是直接在创建方法中负责所有的产品的生成,造成该方法臃肿,并且当…

江城子·乙卯正月二十日夜记梦

  • 目的
  • 动机
  • 简单工厂
  • 示例代码

目的

定义一个创建对象的接口,该接口的子类具体负责创建具体的对象。工厂方法模式将对象的实例化延迟到子类。简单工厂是直接在创建方法中负责所有的产品的生成,造成该方法臃肿,并且当新增产品类时会修改该方法,违背了开闭原则 Open Close Principle 。

动机

创建模式其实都是对new关键字的封装和抽象,工厂方法也不例外,所以工厂方法首先解决的就是创建问题,即在一个类的创建过程比较复杂的情况下比如:一个对象的创建需要通过读取配置文件根据配置文件的参数来生成,或者类的创建过程又要依赖于其他类以及可能更复杂的情况。将对象复杂的创建过程封装到工厂的一个创建方法里,就可以方便其他调用者的使用。

简单工厂

简单工厂就是直接将对象的创建过程全部封装在一个方法里,需要生成不同的对象通过在生成的方法中传入不同的参数来对应不同的产品对象。这样简单工厂存在的问题就是,如果要新增产品类型,那么就需要修改简单工厂生成对象的逻辑,这里就违反了设计模式里面的开闭原则 Open Close Principle(对扩展开放,对修改关闭)。所以简单工厂适用于创建的类比较少的场景。

在这里插入图片描述

示例代码

  • 产品接口
package org.cqcs.knowledge.designpattern.creation.factorymethod.product;/*** 抽象产品:按钮接口* }*/
public interface IButton {void render();void onClick();
}
  • 产品实现
package org.cqcs.knowledge.designpattern.creation.factorymethod.product.impl;import org.cqcs.knowledge.designpattern.creation.factorymethod.product.IButton;/*** 具体产品:Windows按钮*/
public class WindowsButton implements IButton {@Overridepublic void render() {System.out.println("Windows风格按钮渲染完成");}@Overridepublic void onClick() {System.out.println("Windows按钮点击事件");}
}
package org.cqcs.knowledge.designpattern.creation.factorymethod.product.impl;import org.cqcs.knowledge.designpattern.creation.factorymethod.product.IButton;/*** 具体产品:Mac按钮*/
public class MacButton implements IButton {@Overridepublic void render() {System.out.println("Mac风格按钮渲染完成");}@Overridepublic void onClick() {System.out.println("Mac按钮点击事件");}
}
  • 工厂接口
package org.cqcs.knowledge.designpattern.creation.factorymethod.factory;import org.cqcs.knowledge.designpattern.creation.factorymethod.product.IButton;/*** 抽象创建者:按钮工厂接口*/
public interface IButtonFactory {IButton createButton(); // 工厂方法
}
  • 工厂实现
package org.cqcs.knowledge.designpattern.creation.factorymethod.factory.impl;import org.cqcs.knowledge.designpattern.creation.factorymethod.factory.IButtonFactory;
import org.cqcs.knowledge.designpattern.creation.factorymethod.product.IButton;
import org.cqcs.knowledge.designpattern.creation.factorymethod.product.impl.WindowsButton;/*** 具体创建者:Windows按钮工厂*/
public class WindowsButtonFactory implements IButtonFactory {@Overridepublic IButton createButton() {return new WindowsButton();}
}
package org.cqcs.knowledge.designpattern.creation.factorymethod.factory.impl;import org.cqcs.knowledge.designpattern.creation.factorymethod.factory.IButtonFactory;
import org.cqcs.knowledge.designpattern.creation.factorymethod.product.IButton;
import org.cqcs.knowledge.designpattern.creation.factorymethod.product.impl.MacButton;/*** 具体创建者:Mac按钮工厂*/
public class MacButtonFactory implements IButtonFactory {@Overridepublic IButton createButton() {return new MacButton();}
}
http://www.dtcms.com/wzjs/198131.html

相关文章:

  • wordpress如何从网站登录后台推广赚佣金项目
  • 宁波哪里做网站的搜索引擎优化特点
  • 做统计的网站nba最新交易汇总
  • 微信网页版是什么灰色行业seo大神
  • 有没有卖设计的网站seo查询官网
  • 做简单网站代码电商引流推广方法
  • 马云不会代码怎么做的网站搜索引擎排行榜
  • 网站建设需要用到什么软件有哪些怎么做网络广告
  • 无极任务平台站内关键词排名优化软件
  • 郴州新闻网seo短视频网页入口营销
  • 门户网站做如何建立独立网站
  • 做美篇发网站北京发生大事了
  • 时尚网站设计案例色盲悖论
  • 卡通做头像的网站线下营销推广方式有哪些
  • 展示型网站建设流程图百度怎么投广告
  • 德州做网站优化职业培训网络平台
  • 公司网站用个人备案 2018seo入门书籍
  • 网站制作与建立天堂网
  • 网站模板怎么做东莞做网站排名优化推广
  • 有一个专门做lol同人的网站制作网站的步骤是什么
  • 什么网站做h5不收费网络营销策划书3000字
  • 做网站的公司msgg免费域名申请
  • 动态网站开发采用的关键技术全网最低价24小时自助下单平台
  • 盐城网站建设网站制作推广北京网站建设公司案例
  • 网站开发维护多少钱站长之家
  • 烟台seo做的好的网站百度一下你就知道首页
  • 手机端网站优化排名seo推广网络营销和传统营销的区别
  • 404过多会不会影响网站排名百度广告一天多少钱
  • 淘宝有做钓鱼网站的吗网站推广名词解释
  • 自己制作上传图片的网站怎么做软文案例200字