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

企业网站建设公司怎么做揭阳网站建设策划方案

企业网站建设公司怎么做,揭阳网站建设策划方案,青岛抖音seo,安徽柱石建设有限公司网站文章目录 一、简单工厂模式简介二、简单工厂模式适用场景三、简单工厂模式优缺点四、简单工厂模式代码示例1、抽象类2、子类对象 13、子类对象 24、工厂类5、测试类 一、简单工厂模式简介 简单工厂模式 : 由 一个 工厂对象 决定 创建出 哪一种 产品类 的 实例 ; 简单工厂模式类…

文章目录

  • 一、简单工厂模式简介
  • 二、简单工厂模式适用场景
  • 三、简单工厂模式优缺点
  • 四、简单工厂模式代码示例
    • 1、抽象类
    • 2、子类对象 1
    • 3、子类对象 2
    • 4、工厂类
    • 5、测试类





一、简单工厂模式简介



简单工厂模式 : 由 一个 工厂对象 决定 创建出 哪一种 产品类 实例 ;

简单工厂模式类型 : 创建型 ;





二、简单工厂模式适用场景



简单工厂模式适用场景 :

  • 创建对象少 : 工厂类 负责 创建的对象 比较少 ;

  • 不关心创建过程 : 客户端 只知道 传入 工厂类 的参数 , 对于 如何创建对象 不关心 ;





三、简单工厂模式优缺点



简单工厂模式优点 : 只需要传入 正确的参数 , 就可以 获取需要的对象 , 无需知道创建细节 ;
工厂类中有必要的 判断逻辑 , 可以决定 根据当前的参数 创建对应的产品实例 , 客户端可以免除直接创建产品对象的责任 ;
通过该模式 , 实现了对 创建实例使用实例责任分割 ;
提供专门的 工厂类 用于创建对象 , 客户端 无需知道所创建的产品类的类名 , 只需要知道对应产品类的参数即可创建对象实例 ;


简单工厂模式缺点 : 工厂类 职责 过重 , 如果要增加新的产品 , 需要 修改工厂类的判断逻辑 , 违背 " 开闭原则 " ;
7 7 7 大设计原则 , 不能全部遵守 , 也不能不遵守 , 注意平衡 功能 和 系统复杂度 , 找到最合适的一个点 ;





四、简单工厂模式代码示例




1、抽象类


package simplefactory;/*** 视频抽象*/
public abstract class Vedio {/*** 生产视频*/public abstract void produce();
}

2、子类对象 1


package simplefactory;public class JavaVedio extends Vedio {@Overridepublic void produce() {System.out.println("录制 Java 视频");}
}

3、子类对象 2


package simplefactory;public class PythonVedio extends Vedio {@Overridepublic void produce() {System.out.println("录制 Python 视频");}
}

4、工厂类


简单工厂模式的缺点 : 如果要增加新的课程如 C 课程 , 就需要修改 getVedio 方法 , 在该方法中添加新的分支 , 明显该操作违反了开闭原则 , 对扩展开方 , 对修改关闭 , 只要修改就会带来风险 ;

使用传入 Class 参数的方法 , 可以解决上述问题 , 如果要扩展 , 只需要传入不同的 Class 类即可 , 不需要修改工厂方法 ;


代码示例 :

package simplefactory;/*** 简单工厂模式的缺点 :*      如果要增加新的课程如 C 课程 , 就需要修改 getVedio 方法*      在该方法中添加新的分支*      明显该操作违反了开闭原则 , 对扩展开方 , 对修改关闭*      只要修改就会带来风险** 使用传入 Class 参数的方法 , 可以解决上述问题 , 如果要扩展*      只需要传入不同的 Class 类即可*/
public class VedioFactory {/*** 根据传入的参数 , 创建不同的 Vedio 子类实例对象*      该方法不符合开闭原则*      如果增加新的 Vedio 子类 , 需要修改本方法 , 增加新的分支* @param type* @return*/public Vedio getVedio(String type) {Vedio vedio = null;if ("Java".equals(type)) {vedio = new JavaVedio();} else if ("Python".equals(type)) {vedio = new PythonVedio();}return vedio;}/*** 根据传入的参数 , 创建不同的 Vedio 子类实例对象*      该方法符合开闭原则*      如果增加新的 Vedio 子类 , 不需要修改本方法* @param clazz* @return*/public Vedio getVedio(Class<?> clazz) {Vedio vedio = null;// 通过反射创建对象try {vedio = (Vedio) Class.forName(clazz.getName()).newInstance();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return vedio;}
}

5、测试类


package simplefactory;public class Main {public static void main(String[] args) {// 如果直接创建 JavaVedio//      那么本类需要依赖 JavaVedio , 即导入 JavaVedio 依赖Vedio javaVedio = new JavaVedio();javaVedio.produce();// 如果直接创建 PythonVedio//      那么本类需要依赖 PythonVedio , 即导入 PythonVedio 依赖Vedio pythonVedio = new PythonVedio();pythonVedio.produce();System.out.println();// 使用工厂类 , 可以避免直接依赖被创建的类//      不管创建多少种类的实例对象 , 只需要依赖一个工厂类即可Vedio javaVedio2 = new VedioFactory().getVedio("Java");javaVedio2.produce();Vedio pythonVedio2 = new VedioFactory().getVedio("Python");pythonVedio2.produce();}
}

执行结果 :

录制 Java 视频
录制 Python 视频录制 Java 视频
录制 Python 视频

在这里插入图片描述

http://www.yayakq.cn/news/608984/

相关文章:

  • 宁夏做网站找谁网站建设架构 服务器
  • 网站开发与设计课程时间微网站开发项目合作协议
  • 银川网站建设那家公司比较好做海报用的图片网站
  • 网站开发公司简介广州市安全教育平台登录入口
  • 做网站有高手没有wordpress创建自定义分类法
  • 中国建设网官方网站千库网原创设计师
  • 设计团队网站营销和销售的区别在哪里
  • 东莞网站建设哪家最好家具flash网站模板下载
  • 建一个网站得多少钱网站页面制作建议
  • 成都网站推广创新互联抽纸网站建设摘要
  • 学校网站建设设计方案49图库下浏览器
  • 网站备案信息注销原因外链兔
  • 电脑维修网站模板网站的建设步骤包括
  • 网站建设合同 域名长春可做微网站的公司
  • 加工企业网站这么做淘宝网站建设基本流程
  • 怎样做自己的网站钻钱wordpress 缓存时间
  • 北京市建设教育协会网站查询系统备案之后怎样把 放到网站上
  • 网站开发要服务器吗丽江网站建设公司
  • 网站快速收录提交呼叫中心系统电话
  • 网站制作公司兴田德润i在哪里漂亮的html单页
  • 做app的网站有哪些功能吗零基础网站建设教学培训
  • 在线制作钓鱼网站源码电商基地推广
  • 有做网站运营的吗wordpress菜单里想在添加一个菜单
  • 建信建设投资有限公司网站建设网站的基本技术
  • 北京网站建设排名石家庄新钥匙网站
  • 机关单位网站建设工作方案wordpress对配置的要求
  • 网站建设活动方案网页游戏排行榜对战
  • 南皮做网站价格长沙招聘网站有哪些
  • 360网站建设公司哪家好济南手机网站建设电话
  • 青岛网站建设在哪服装网站建设报关