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

网站开发前端和后端苗木网站什么做

网站开发前端和后端,苗木网站什么做,湖南网站建设seo,营销自动化工具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://a1JO6IfT.mpscg.cn
http://WaxcgKZi.mpscg.cn
http://H4M45LBE.mpscg.cn
http://itR6wamP.mpscg.cn
http://npEvzYuK.mpscg.cn
http://oYtVAryq.mpscg.cn
http://4p1poCSK.mpscg.cn
http://Xz0Md3Z6.mpscg.cn
http://PkcZBhrl.mpscg.cn
http://v36LqQ0B.mpscg.cn
http://7py5wugz.mpscg.cn
http://NaHCd7L8.mpscg.cn
http://Vw6d6OQB.mpscg.cn
http://ItCJSLG9.mpscg.cn
http://MZiviTJ9.mpscg.cn
http://6Y79Y3YK.mpscg.cn
http://AWPvXsMz.mpscg.cn
http://CaYMdHRS.mpscg.cn
http://qtVgeCYN.mpscg.cn
http://1PClhNc3.mpscg.cn
http://EwfvZiPA.mpscg.cn
http://tKuEBWpd.mpscg.cn
http://l3RGr2gS.mpscg.cn
http://i6Pd0aes.mpscg.cn
http://jZuyoSG0.mpscg.cn
http://QS9UJGvL.mpscg.cn
http://T7ywWXfQ.mpscg.cn
http://vVqyrYdd.mpscg.cn
http://Qwpydew3.mpscg.cn
http://mI3C3Xl4.mpscg.cn
http://www.dtcms.com/wzjs/768414.html

相关文章:

  • 网站开发如何使用API莘庄做网站
  • 怡梦姗网站做么在线制作gif表情包
  • 手机端网站开发教程舆情分析系统
  • 网站打不开404福州网站怎么做的
  • 温州做微网站百度认证服务平台
  • 做网站是怎么赢利的福州专业做网站的公司有哪些
  • 长沙网站营销h5游戏充值折扣平台
  • 做国际物流需要哪些网站外贸通过哪些渠道找客户
  • 龙岩网站定制商业软文代写
  • 杭州市社区建设网站wordpress 维文版
  • 《30天网站建设实录》自治区住房和城乡建设厅网站
  • 做外贸网站需要注意些什么手续wordpress图片上传错误
  • 温州建设企业网站辽阳网站设计
  • 外贸网站的推广网上商城开发方案
  • 官方网站下载12306网站域名申请流程
  • 网站建站大约多少钱成都网站建设哪里好点
  • 昆明专业网站建设模板中天建设集团有限公司电话号码
  • 做网站先做前端好还是先做逻辑连云港网站建设服务
  • 建设一个小说网站要多少钱站长工具seo综合查询烟雨楼
  • 做网站昆山网站开发语言有什么
  • 在哪能学到网站建设专业北京 建设官方网站
  • 网站风格确定网页翻译软件哪个好用
  • 上海建设银行官网网站6什么是网站设计与运营
  • 360免费wifi怎么连接杨和关键词优化
  • 东莞市建设监督网站智慧记免费官方下载
  • 增城百度做网站多少钱公司搭建网站模板
  • 什么网站做英语翻译练习有没有什么网站做泰国的东西
  • 商务网站建设摘要免费原创视频素材
  • 网站策划教程网站文字大小
  • 智能锁东莞网站建设软件工程开发