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

外贸网站增加外链方法wordpress copyfeed

外贸网站增加外链方法,wordpress copyfeed,wordpress如何添加友链,天津seo外包平台目录 1 背景1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2 简单工厂模式3 工厂方法模式4 思考4.1 改进工厂方法模式 1 背景 题目源自#xff1a;【设计模式专题之工厂方法模式】2.积木工厂 1.1 题目描述 小明家有两个工厂#xff0c;一个用于生产圆形积木… 目录 1 背景1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2 简单工厂模式3 工厂方法模式4 思考4.1 改进工厂方法模式 1 背景 题目源自【设计模式专题之工厂方法模式】2.积木工厂 1.1 题目描述 小明家有两个工厂一个用于生产圆形积木一个用于生产方形积木请你帮他设计一个积木工厂系统记录积木生产的信息。 1.2 输入描述 输入的第一行是一个整数 N1 ≤ N ≤ 100表示生产的次数。 接下来的 N 行每行输入一个字符串和一个整数字符串表示积木的类型。积木类型分为 “Circle” 和 “Square” 两种。整数表示该积木生产的数量 1.3 输出描述 对于每个积木输出一行字符串表示该积木的信息。 1.4 输入示例 3 Circle 1 Square 2 Circle 1 1.5 输出示例 Circle Block Square Block Square Block Circle Block 2 简单工厂模式 一个工厂生产多个对象。 1抽象对象【通过接口进行抽象】2具体对象【通过类实现接口】3具体工厂 代码示例 public class Main {public static void main(String[] args) {ShapeFactorySystem shapeFactorySystem new ShapeFactorySystem(new SimpleShapeFactory());Scanner scanner new Scanner(System.in);int count Integer.parseInt(scanner.nextLine());for (int i 0; i count; i) {String line scanner.nextLine();String[] parts line.split( );String type parts[0];shapeFactorySystem.produce(type, Integer.parseInt(parts[1]));}} }interface Shape {void draw(int n); }class Circle implements Shape {public void draw(int n) {for (int i 0; i n; i) {System.out.println(Circle Block);}} }class Square implements Shape {Overridepublic void draw(int n) {for (int i 0; i n; i) {System.out.println(Square Block);}} }class SimpleShapeFactory {public Shape createShape(String type) {if (Circle.equals(type)) {return new Circle();} else if (Square.equals(type)) {return new Square();} else {throw new RuntimeException(Unknown type);}} }class ShapeFactorySystem {private SimpleShapeFactory simpleShapeFactory;public ShapeFactorySystem(SimpleShapeFactory simpleShapeFactory) {this.simpleShapeFactory simpleShapeFactory;}public void produce(String type, int n) {Shape shape simpleShapeFactory.createShape(type);shape.draw(n);} }3 工厂方法模式 和简单工厂不同的是不同对象的生产工厂也不同。代码示例 public class Main {public static void main(String[] args) {ShapeFactorySystem shapeFactorySystem new ShapeFactorySystem(new CircleFactory(), new SquareFactory());Scanner scanner new Scanner(System.in);int count Integer.parseInt(scanner.nextLine());for (int i 0; i count; i) {String line scanner.nextLine();String[] parts line.split( );String type parts[0];shapeFactorySystem.produce(type, Integer.parseInt(parts[1]));}} }interface Shape {void draw(int n); }class Circle implements Shape {public void draw(int n) {for (int i 0; i n; i) {System.out.println(Circle Block);}} }class Square implements Shape {Overridepublic void draw(int n) {for (int i 0; i n; i) {System.out.println(Square Block);}} }interface ShapeFactory {Shape createShape(String type); }class CircleFactory implements ShapeFactory {Overridepublic Shape createShape(String type) {return new Circle();} }class SquareFactory implements ShapeFactory {Overridepublic Shape createShape(String type) {return new Square();} }class ShapeFactorySystem {private ShapeFactory circleFactory;private ShapeFactory squareFactory;public ShapeFactorySystem(ShapeFactory circleFactory, ShapeFactory squareFactory) {this.circleFactory circleFactory;this.squareFactory squareFactory;}public void produce(String type, int n) {Shape shape;if (Circle.equals(type)) {shape circleFactory.createShape(type);} else if (Square.equals(type)) {shape squareFactory.createShape(type);} else {throw new RuntimeException(Unknown type);}shape.draw(n);} }4 思考 从这个例子中看不出工厂方法模式比简单工厂模式好在哪里。假设需求变化了需要增加一种类型那么对于简单工厂模式只要修改 // 新增类 class xxx implements Shape {Overridepublic void draw(int n) {for (int i 0; i n; i) {System.out.println(xxx Block);}} }// 修改方法 class SimpleShapeFactory {public Shape createShape(String type) {if (Circle.equals(type)) {return new Circle();} else if (Square.equals(type)) {return new Square();} else if (xxx.equals(type)) {...} else {throw new RuntimeException(Unknown type);}} }但是对应用层代码main方法不需要做任何改动。这反而更好。对于简单工厂模式要修改 // 修改应用层代码 public static void main(String[] args) {ShapeFactorySystem shapeFactorySystem new ShapeFactorySystem(new CircleFactory(), new SquareFactory(), xxx);Scanner scanner new Scanner(System.in);int count Integer.parseInt(scanner.nextLine());for (int i 0; i count; i) {String line scanner.nextLine();String[] parts line.split( );String type parts[0];shapeFactorySystem.produce(type, Integer.parseInt(parts[1]));} }// 新增类 class xxx implements Shape {Overridepublic void draw(int n) {for (int i 0; i n; i) {System.out.println(xxx Block);}} }// 新增类 class xxxFactory implements ShapeFactory {... }class ShapeFactorySystem {private ShapeFactory circleFactory;private ShapeFactory squareFactory;private xxxFactory ...;public ShapeFactorySystem(ShapeFactory circleFactory, ShapeFactory squareFactory, xxxFactory ...) {this.circleFactory circleFactory;this.squareFactory squareFactory;...}public void produce(String type, int n) {Shape shape;if (Circle.equals(type)) {shape circleFactory.createShape(type);} else if (Square.equals(type)) {shape squareFactory.createShape(type);} else if (xxx) {...} else {throw new RuntimeException(Unknown type);}shape.draw(n);} }真麻烦啊。 4.1 改进工厂方法模式 代码示例 public class Main {public static void main(String[] args) {ShapeFactorySystem shapeFactorySystem ShapeFactorySystem.getSingleton();Scanner scanner new Scanner(System.in);int count Integer.parseInt(scanner.nextLine());for (int i 0; i count; i) {String line scanner.nextLine();String[] parts line.split( );String type parts[0];shapeFactorySystem.produce(type, Integer.parseInt(parts[1]));}} }interface Shape {void draw(int n); }class Circle implements Shape {public void draw(int n) {for (int i 0; i n; i) {System.out.println(Circle Block);}} }class Square implements Shape {Overridepublic void draw(int n) {for (int i 0; i n; i) {System.out.println(Square Block);}} }interface ShapeFactory {Shape createShape(); }class CircleFactory implements ShapeFactory {Overridepublic Shape createShape() {return new Circle();} }class SquareFactory implements ShapeFactory {Overridepublic Shape createShape() {return new Square();} }class ShapeFactorySystem {private static final MapShapeType, ShapeFactory shapeFactoryMap new HashMap();private static ShapeFactorySystem shapeFactorySystem;private ShapeFactorySystem() {shapeFactoryMap.put(ShapeType.CIRCLE, new CircleFactory());shapeFactoryMap.put(ShapeType.SQUARE, new SquareFactory());}public static ShapeFactorySystem getSingleton() {if (shapeFactorySystem null) {synchronized (ShapeFactorySystem.class) {if (shapeFactorySystem null) {shapeFactorySystem new ShapeFactorySystem();}}}return shapeFactorySystem;}private ShapeFactory acquireShapeFactory(ShapeType type) {return shapeFactoryMap.get(type);}public void produce(String type, int n) {ShapeFactory shapeFactory acquireShapeFactory(ShapeType.of(type));Shape shape shapeFactory.createShape();shape.draw(n);} }enum ShapeType {CIRCLE(Circle), SQUARE(Square);private String value;private ShapeType(String value) {this.value value;}private String getValue() {return value;}public static ShapeType of(String value) {for (ShapeType shapeType : ShapeType.values()) {if (shapeType.getValue().equals(value)) {return shapeType;}}// 如果没有找到匹配的枚举对象可以抛出一个异常或返回nullthrow new IllegalArgumentException(Unknown ShapeType: value);} }多线程场景下不能用HashMap。 如果新增一种类型 // 新增类 class xxx implements Shape {Overridepublic void draw(int n) {for (int i 0; i n; i) {System.out.println(xxx Block);}} }// 新增类 class xxxFactory implements ShapeFactory {Overridepublic Shape createShape() {return new xxx();} }// 修改方法不修改之前代码新增语句 private ShapeFactorySystem() {shapeFactoryMap.put(ShapeType.CIRCLE, new CircleFactory());shapeFactoryMap.put(ShapeType.SQUARE, new SquareFactory()); }// 不修改之前的代码加一个枚举对象 enum ShapeType {CIRCLE(Circle), SQUARE(Square), xxx;... }当然了通过map enum这种改进也可以应用到简单工厂模式中。不过当创建对象变得复杂时简单工厂模式就难以应用对了 class SimpleShapeFactory {public Shape createShape(String type) {if (Circle.equals(type)) {return new Circle(); // 简单对象} else if (Square.equals(type)) {return new Square(); // 简单对象} else {throw new RuntimeException(Unknown type);}} }
http://www.w-s-a.com/news/183865/

相关文章:

  • 建设公司网站的内容建筑设计图片
  • 用ps怎么做网站的效果图互联网营销师报名入口官网
  • 网站的后端怎么开发网站 白名单
  • 济宁中小企业网站建设wordpress爆破工具
  • 零基础网站建设视频商城系统平台有哪些
  • 那个网站做百科好过wordpress删除
  • 优化网站排名怎么制作网站建设数据库模板
  • 哪个建站软件比较好带论坛都有什么公司需要网站建设
  • 同城便民网站开发自己免费怎么制作网站吗
  • 数据库网站开发教程网站内部优化是什么意思
  • 哈尔滨建站怎么做广西seo快速排名
  • 公司网站建设的不足企业文档管理wordpress
  • .net做的网站代码网站怎么加二级域名
  • 网站建设方案对比分析报告成都短视频代运营
  • 企业所得税税率知多少重庆seo什么意思
  • ftp如何修改网站备案号百度云建站
  • 免费做网站空间dede二手车网站源码
  • 网站服务器需要多大设计网站公司开发
  • asp 网站权限设计做网站业务员
  • 做棋牌网站违法嘛网络服务网络推广
  • 专门做推广的网站吗免费建域名网站
  • 在百度做网站株洲网站平台搭建
  • 用node做的网站南宁网站定制开发
  • 做刷单网站犯法吗wordpress depth
  • 潍坊青州网站建设少儿编程app
  • 表白网站制作源代码自己怎么免费做网站网页
  • 开源网站建设是什么工作个人虚拟网站
  • 网站制作的一般过程优化关键词排名公司
  • 如何使用阿里云建设网站网站两边广告
  • 互联网信息服务小红书seo是什么意思