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

常熟做网站公司三亚网络推广

常熟做网站公司,三亚网络推广,自己可做以做网站吗,有没有一些帮做名片的网站工厂模式属于创建型模式,也被称为多态工厂模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离,有子类决定要实例化的产品是哪一个,把产品的实例化推迟到子类。 使用场景 重复代码 : 创建对象…

工厂模式属于创建型模式,也被称为多态工厂模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离,有子类决定要实例化的产品是哪一个,把产品的实例化推迟到子类。

使用场景

  • 重复代码 : 创建对象 需要使用 大量重复的代码 ;
  • 不关心创建过程 : 客户端 不依赖 产品类 , 不关心 实例 如何被创建 , 实现等细节 ;
  • 创建对象 : 一个类 通过其 子类 来 指定 创建哪个对象 ;

 工厂方法模式的角色

  • 抽象产品(Product)是定义产品的接口,是工厂方法模式创建对象的父类,也就是产品对象的公共父类。
  • 产品类(ConcreteProduct)是实现了抽象产品所声明的接口,工厂方法模式所创建的每一个对象都是某个具体产品角色的实例。
  • 抽象工厂(Factory)是工厂方法模式的核心,所有创建对象的工厂类都必须继承该接口。
  • 具体工厂(ConcreteFactory)是抽象工厂的子类,实现了抽象工厂中定义的函数,工厂方法模式所创建的每一个对象都是某个具体产品类的实例。

结构图 

优缺点

优点

  • 不关心创建细节 : 用户 只需要 关心 所需产品 对应的工厂 , 无需关心创建细节 ;
  • 符合开闭原则 : 加入 新产品 , 符合开闭原则 , 提高可扩展性 ;

缺点

  • 增加复杂性:类的个数容易过多,增加系统复杂度;在添加新产品时,除了编写 新的产品类之外 ,还要 编写该产品类对应的工厂类。
  • 增加难度:增加了系统抽象性和理解难度。工厂方法本身利用了抽象,该模式中会 引入抽象层 ,如果要动态创建产品类,还要 引入反射技术。

应用实例 

创建一个 Shape 接口和实现 Shape 接口的实体类。下一步是定义工厂类 ShapeFactory

FactoryPatternDemo 类使用 ShapeFactory 来获取 Shape 对象。它将向 ShapeFactory 传递信息(CIRCLE / RECTANGLE / SQUARE),以便获取它所需对象的类型。

抽象产品

public interface Shape {void draw();
}

 实现接口的产品类

public class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("Inside Rectangle::draw() method.");}
}public class Square implements Shape {@Overridepublic void draw() {System.out.println("Inside Square::draw() method.");}
}public class Circle implements Shape {@Overridepublic void draw() {System.out.println("Inside Circle::draw() method.");}
}

抽象工厂

public interface Factory {public Shape getShape(String shapeType);
}

具体工厂

public class ShapeFactory implements Factory {//使用 getShape 方法获取形状类型的对象@Overridepublic 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 FactoryPatternDemo {public static void main(String[] args) {ShapeFactory shapeFactory = new ShapeFactory();//获取 Circle 的对象,并调用它的 draw 方法Shape shape1 = shapeFactory.getShape("CIRCLE");//调用 Circle 的 draw 方法shape1.draw();//获取 Rectangle 的对象,并调用它的 draw 方法Shape shape2 = shapeFactory.getShape("RECTANGLE");//调用 Rectangle 的 draw 方法shape2.draw();//获取 Square 的对象,并调用它的 draw 方法Shape shape3 = shapeFactory.getShape("SQUARE");//调用 Square 的 draw 方法shape3.draw();}
}

运行结果

Inside Circle::draw() method.
Inside Rectangle::draw() method.
Inside Square::draw() method.

 

http://www.khdw.cn/news/1830.html

相关文章:

  • 网站做贩卖毕业论文合法吗长沙百度地图
  • 怎么做网站信息营销推广的平台
  • 数字营销工具秦皇岛seo招聘
  • 建设网站需要服务器seo教学实体培训班
  • 中国现货交易网官网广州seo顾问
  • 沛县网站建设xlec企业培训机构排名前十
  • flash分享网站2023年7月最新新闻摘抄
  • wordpress+仿站步骤宁波seo快速优化公司
  • 物流网站建设方案网络营销首先要
  • wordpress自定义管理员头像排名优化公司口碑哪家好
  • 网站建设 参照 标准规范seo关键词排名注册价格
  • 更改了网站关键词后要怎么做公司网站域名续费一年多少钱
  • 中国建设工程人才库官方网站威海百度seo
  • 做网站推广引流效果好吗西安seo外包优化
  • 泛华建设集团网站百度竞价教程
  • 长垣县做网站的百度seo排名公司
  • 高唐网站建设服务商网络营销推广8种方法
  • 企业门户网站功能企业网站推广方法实验报告
  • 宣传网站怎么做seo海外推广
  • 江苏城乡建设厅网站百度sem代运营
  • 网站开发实施经费预算代运营是什么意思
  • 免费建设网站平台湖北网站seo
  • 宁波市北仑区建设局网站今日中国新闻
  • 网站改版 请示关键词批量调词 软件
  • 可信的手机网站建设网店运营在哪里学比较好些
  • 枸杞网站建设方案高级搜索引擎技巧
  • 可以建微信网站的赛事资讯赛马资料
  • 关于做网站的外语文献书名搜索引擎优化叫什么
  • 常州制作公司网站企业网站推广策略
  • 济南企业建站品牌十大搜索引擎神器