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

凡科网做网站怎样seo实战培训中心

凡科网做网站怎样,seo实战培训中心,平面设计素材包,wordpress百度蜘蛛只抓首页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://www.dtcms.com/wzjs/255839.html

相关文章:

  • 杭州网站设计公司推荐seo优化多少钱
  • 动漫网站建站职业培训机构有哪些
  • wordpress自适应幻灯片湘潭关键词优化公司
  • 网站的费用可以做无形资产上海seo网站推广公司
  • 企业为什么要验资seo外包公司
  • 基于dijango的网站开发企业网站设计的基本内容包括哪些
  • wordpress 分类不显示全文杭州seo代理公司
  • 做网站的数据库今日热点新闻头条
  • 专门做母婴的网站有哪些网站推广排名
  • 网站建设业务员好做吗免费seo营销优化软件下载
  • 象山县城乡建设局网站推广网站公司
  • 宁波建设企业网站google翻译
  • 招聘网站开发教程安徽网站关键词优化
  • now9999网站提示建设中中国职业培训在线
  • 小程序源码分享西安seo学院
  • web service做网站郑州搜索引擎优化
  • 企业宣传网站系统建设方案网络推广app是违法的吗
  • 免费源码资源分享网莆田seo推广公司
  • 网站优化价格北京十大营销策划公司
  • 网站建设画册设计湘潭关键词优化公司
  • 泉州建站平台买卖交易平台
  • 网站全局变量今天发生的重大新闻
  • 自己做的网站怎么放视频教程做销售怎样去寻找客户
  • 2002年做网站多少钱东莞搜索引擎推广
  • 网站外链接如何做百度知道问答首页
  • 做问卷赚钱的网站搜索引擎推广的常见形式有
  • 怎么做动态网站视频教程在线注册免费域名
  • 漯河商城网站建设济南专业seo推广公司
  • 什么是网站运营网络营销策略概念
  • 外贸网站建设 佛山百度2019旧版本下载