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

uc官方网站开发者中心网站开发中视屏怎样编辑到网页上

uc官方网站开发者中心,网站开发中视屏怎样编辑到网页上,打扑克的直播软件下载,建设网站工作汇报Java 工厂模式示例代码 下面我将展示三种常见的工厂模式实现:简单工厂模式、工厂方法模式和抽象工厂模式。 1. 简单工厂模式 java // 产品接口 interface Shape {void draw(); }// 具体产品类 class Circle implements Shape {Overridepublic void draw() {System…

Java 工厂模式示例代码

下面我将展示三种常见的工厂模式实现:简单工厂模式、工厂方法模式和抽象工厂模式。

1. 简单工厂模式

java

// 产品接口
interface Shape {void draw();
}// 具体产品类
class Circle implements Shape {@Overridepublic void draw() {System.out.println("画一个圆形");}
}class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("画一个矩形");}
}class Square implements Shape {@Overridepublic void draw() {System.out.println("画一个正方形");}
}// 简单工厂类
class ShapeFactory {// 使用getShape方法获取形状类型的对象public Shape getShape(String shapeType) {if (shapeType == null) {return null;}if (shapeType.equalsIgnoreCase("CIRCLE")) {return new Circle();} else if (shapeType.equalsIgnoreCase("RECTANGLE")) {return new Rectangle();} else if (shapeType.equalsIgnoreCase("SQUARE")) {return new Square();}return null;}
}// 测试类
public class SimpleFactoryDemo {public static void main(String[] args) {ShapeFactory shapeFactory = new ShapeFactory();// 获取Circle对象并调用它的draw方法Shape shape1 = shapeFactory.getShape("CIRCLE");shape1.draw();// 获取Rectangle对象并调用它的draw方法Shape shape2 = shapeFactory.getShape("RECTANGLE");shape2.draw();// 获取Square对象并调用它的draw方法Shape shape3 = shapeFactory.getShape("SQUARE");shape3.draw();}
}

2. 工厂方法模式

java

// 产品接口
interface Button {void render();void onClick();
}// 具体产品类
class HtmlButton implements Button {@Overridepublic void render() {System.out.println("<button>HTML按钮</button>");onClick();}@Overridepublic void onClick() {System.out.println("点击HTML按钮! 浏览器跳转");}
}class WindowsButton implements Button {@Overridepublic void render() {System.out.println("绘制Windows风格按钮");onClick();}@Overridepublic void onClick() {System.out.println("点击Windows按钮! 执行命令");}
}// 创建者抽象类
abstract class Dialog {public void renderWindow() {Button okButton = createButton();okButton.render();}// 工厂方法public abstract Button createButton();
}// 具体创建者类
class HtmlDialog extends Dialog {@Overridepublic Button createButton() {return new HtmlButton();}
}class WindowsDialog extends Dialog {@Overridepublic Button createButton() {return new WindowsButton();}
}// 测试类
public class FactoryMethodDemo {private static Dialog dialog;public static void main(String[] args) {configure();runBusinessLogic();}static void configure() {if (System.getProperty("os.name").equals("Windows 10")) {dialog = new WindowsDialog();} else {dialog = new HtmlDialog();}}static void runBusinessLogic() {dialog.renderWindow();}
}

3. 抽象工厂模式

java

// 抽象产品接口
interface Checkbox {void paint();
}interface GUIFactory {Button createButton();Checkbox createCheckbox();
}// 具体产品类
class MacOSButton implements Button {@Overridepublic void render() {System.out.println("渲染MacOS风格按钮");}@Overridepublic void onClick() {System.out.println("MacOS按钮点击事件");}
}class MacOSCheckbox implements Checkbox {@Overridepublic void paint() {System.out.println("渲染MacOS风格复选框");}
}class WindowsButton implements Button {@Overridepublic void render() {System.out.println("渲染Windows风格按钮");}@Overridepublic void onClick() {System.out.println("Windows按钮点击事件");}
}class WindowsCheckbox implements Checkbox {@Overridepublic void paint() {System.out.println("渲染Windows风格复选框");}
}// 具体工厂类
class MacOSFactory implements GUIFactory {@Overridepublic Button createButton() {return new MacOSButton();}@Overridepublic Checkbox createCheckbox() {return new MacOSCheckbox();}
}class WindowsFactory implements GUIFactory {@Overridepublic Button createButton() {return new WindowsButton();}@Overridepublic Checkbox createCheckbox() {return new WindowsCheckbox();}
}// 客户端代码
class Application {private Button button;private Checkbox checkbox;public Application(GUIFactory factory) {button = factory.createButton();checkbox = factory.createCheckbox();}public void paint() {button.render();checkbox.paint();}
}// 测试类
public class AbstractFactoryDemo {private static Application configureApplication() {Application app;GUIFactory factory;String osName = System.getProperty("os.name").toLowerCase();if (osName.contains("mac")) {factory = new MacOSFactory();} else {factory = new WindowsFactory();}app = new Application(factory);return app;}public static void main(String[] args) {Application app = configureApplication();app.paint();}
}

总结

  1. 简单工厂模式

    • 一个工厂类根据传入的参数决定创建哪种产品

    • 适用于产品较少且不经常变化的情况

  2. 工厂方法模式

    • 定义一个创建对象的接口,但让子类决定实例化哪个类

    • 适用于需要扩展性强、产品种类可能增加的情况

  3. 抽象工厂模式

    • 提供一个创建一系列相关或相互依赖对象的接口

    • 适用于产品族的情况,需要创建多个相关产品对象

每种模式都有其适用场景,选择哪种模式取决于具体的需求和设计目标。


文章转载自:

http://ganGGJ1T.tLrxt.cn
http://84kYpwT6.tLrxt.cn
http://6Ttb8sj8.tLrxt.cn
http://L4M1XYQt.tLrxt.cn
http://AQc8S7kQ.tLrxt.cn
http://XqqbqFii.tLrxt.cn
http://ifRpsL5N.tLrxt.cn
http://q8KjSgJ5.tLrxt.cn
http://4ck5tUvL.tLrxt.cn
http://sOkR1JLC.tLrxt.cn
http://6M09hWWV.tLrxt.cn
http://yAkZrscu.tLrxt.cn
http://1GxX6HXV.tLrxt.cn
http://BB9PDLTO.tLrxt.cn
http://Cs7Sm79r.tLrxt.cn
http://4mWW8pDq.tLrxt.cn
http://Sz0lXVTD.tLrxt.cn
http://puEKnkQX.tLrxt.cn
http://qpKyuzji.tLrxt.cn
http://9fLpUXPr.tLrxt.cn
http://AaH8qvYz.tLrxt.cn
http://OiEy8l2T.tLrxt.cn
http://jdqlIEQN.tLrxt.cn
http://Hi1SM53Y.tLrxt.cn
http://yyuw2tQK.tLrxt.cn
http://AQJSlYzn.tLrxt.cn
http://WvArKpGY.tLrxt.cn
http://BDMP8pGZ.tLrxt.cn
http://HsQVEFUU.tLrxt.cn
http://AmSc0cAr.tLrxt.cn
http://www.dtcms.com/wzjs/609863.html

相关文章:

  • 惠州淡水网站建设重庆沙坪坝新闻最新消息
  • 石家庄网站建设技术支持做go kegg的在线网站
  • 珠海网站建设q.479185700強网站设计报价是多少钱
  • 住建部官方网站什么是网络营销的红海
  • 重庆网站建设制作设计三栏wordpress 主题
  • 成都建设网站公司智慧营销系统平台
  • 该网站正在紧急升级维护中php网站开发工程师待遇
  • a站免费最好看的电影片推荐友情链接互换
  • 企业网站建设cms站wordpress4.9.4 mysql
  • 网站建设 图片压缩鲜花网站建设规划书
  • 新乡门户网站建设方案美团广告投放平台
  • c2c电子商务网站上国外网站速度慢
  • asp医院网站源码破解版提供网站制作公司哪家专业
  • 制作应用的网站个人备案网站放什么手续
  • 珠海商城网站制作建设网站需要提交什么资料
  • 网站建设基础课件织梦网站博客模板
  • 维护网站秀洲区建设中心小学网站
  • 网站建设淄博郑州微网站建设
  • 做网站用php如何学习重庆网站建设与推广
  • 南通小企业网站建设网页升级紧急通知狼人
  • 网站帮忙备案兰州建设一个网站多少钱
  • 水务公司网站建设方案自己怎么建h5商城网站
  • 实用网站推荐奋进新征程
  • 网站空间要多大别人买我的域名做违法事
  • 国外论文类网站有哪些方面网站最下面版权模板
  • 网站建设百度索引禁止国内ip访问 网站
  • 网站建设合同 程序wordpress iis
  • 深圳网站建设 公司元阿里巴巴黄页网站
  • 手机网站分辨率做多大赔率网站怎么做
  • 少年宫网站建设模块西安学校网站建设多少钱