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

西安购物网站建设查数据的网站有哪些

西安购物网站建设,查数据的网站有哪些,开发公司与物业公司的委托合同模板,wordpress data src1.抽象工厂模式定义: 抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,无需指定它们具体的类 2.抽象工厂模式适用场景: 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量…

1.抽象工厂模式定义:

抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,无需指定它们具体的类

2.抽象工厂模式适用场景:

  • 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节
  • 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量的重复代码
  • 提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现

3.抽象工厂模式的优缺点:


优点:

  • 具体产品在应用层的代码隔离,无需关心创建的细节
  • 将一个系列的产品统一到一起创建


缺点:

  • 规定了所有可能被创建的产品集合,产品簇中扩展新的产品困难
  • 增加了系统的抽象性和理解难度

创建一个手机接口 cn.xs.abstraction.IPhoneProduct
代码如下:
public interface IPhoneProduct {
/**
* 开机
*/
void open();
/**
* 关机
*/
void close();
/**
* 发短信
*/
void send();
/**
* 打电话
*/
void call();
}
创建一个路由器接口 cn.xs.abstraction.IRouterProduct
代码如下:
public interface IRouterProduct {
/**
* 开机
*/
void open();
/**
* 关机
*/
void close();
/**
* 设置参数
*/
void setting();
/**
* 打开 wifi
*/
void wifi();
}
新建小米手机产品类 cn.xs.abstraction.XiaomiPhone
代码如下:
public class XiaomiPhone implements IPhoneProduct {
public void open() {
System.out.println("小米手机开机");
}
public void close() {
System.out.println("小米手机关机");
}
public void send() {
System.out.println("小米手机发短信");
}
public void call() {
System.out.println("小米手机打电话");
}
}
新建小米路由器产品类 cn.xs.abstraction.XiaomiRouter
 
代码如下:
public class XiaomiRouter implements IRouterProduct {
public void open() {
System.out.println("小米路由器开机");
}
public void close() {
System.out.println("小米路由器关机");
}
public void setting() {
System.out.println("小米路由器设置参数");
}
public void wifi() {
System.out.println("小米路由器打开wifi");
}
}
新建华为手机产品类 cn.xs.abstraction.HuaweiPhone
代码如下:
public class HuaweiPhone implements IPhoneProduct {
public void open() {
System.out.println("华为手机开机");
}
public void close() {
System.out.println("华为手机关机");
}
public void send() {
System.out.println("华为手机发短信");
}
public void call() {
System.out.println("华为手机打电话");
}
}
新建华为路由器产品类 cn.xs.abstraction.HuaweiRouter  
代码如下:
public class HuaweiRouter implements IRouterProduct {
public void open() {
System.out.println("华为路由器开机");
}
public void close() {
System.out.println("华为路由器关机");
}
public void setting() {
System.out.println("华为路由器设置参数");
}
public void wifi() {
System.out.println("华为路由器打开wifi");
}
}
新建抽象工厂 cn.xs.abstraction.IProductFactory 来生产手机跟路由器(抽象):
public interface IProductFactory {
/**
* 生产手机
*
* @return
*/
IPhoneProduct getPhone();
/**
* 生产路由器
*
* @return
*/
IRouterProduct getRouter();
}
新建小米工厂 cn.xs.abstraction.XiaomiFactory 来生产手机跟路由器:
public class XiaomiFactory implements IProductFactory {
public IPhoneProduct getPhone() {
return new XiaomiPhone();
}
public IRouterProduct getRouter() {
return new XiaomiRouter();
}
}
新建华为工厂 cn.xs.abstraction.HuaweiFactory 来生产手机跟路由器:

 

public class HuaweiFactory implements IProductFactory {
public IPhoneProduct getPhone() {
return new HuaweiPhone();
}
public IRouterProduct getRouter() {
return new HuaweiRouter();
}
}

 根据类图关系深入了解:

 

新建测试类 cn.xs.abstraction.Client 来进行测试:

public class Client {
/**
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
System.out.println("==========小米系列产品==========");
// 创建小米工厂
IProductFactory factory1 = new XiaomiFactory();
IPhoneProduct phone1 = factory1.getPhone();
phone1.send();
phone1.call();
IRouterProduct router1 = factory1.getRouter();
router1.setting();
router1.wifi();
System.out.println("==========华为系列产品==========");
// 创建华为工厂
IProductFactory factory2 = new HuaweiFactory();
IPhoneProduct phone2 = factory2.getPhone();
phone2.send();
phone2.call();
IRouterProduct router2 = factory2.getRouter();
router2.setting();
router2.wifi();
}
}

再看一下整体的一个类图

运行 main  

抽象工厂模式在产品稳定的情况下是极其强大的,但是如果要添加产品,其子类都需要修改代码,违反了开闭原则
小结:
简单工厂模式(静态工厂模式):

虽然某种程度上不符合设计原则,但实际使用最多!
工厂方法模式:

不修改已有类的前提下,通过增加新的工厂类实现扩展
抽象工厂模式:

不可以增加产品,可以增加产品族!

应用场景:

JDK中Calendar的getInstance方法
JDBC中的Connection对象的获取
Spring中IOC容器创建管理bean对象反射中Class对象的newInstance方法

 


文章转载自:
http://reinaugurate.pqbz.cn
http://atd.pqbz.cn
http://rapturous.pqbz.cn
http://gonion.pqbz.cn
http://designment.pqbz.cn
http://homeopath.pqbz.cn
http://telethon.pqbz.cn
http://klutz.pqbz.cn
http://addlepate.pqbz.cn
http://bloomer.pqbz.cn
http://habitant.pqbz.cn
http://tile.pqbz.cn
http://syphilotherapy.pqbz.cn
http://lammy.pqbz.cn
http://einsteinian.pqbz.cn
http://linksland.pqbz.cn
http://sarajevo.pqbz.cn
http://timeless.pqbz.cn
http://aglossal.pqbz.cn
http://ucayali.pqbz.cn
http://wolframite.pqbz.cn
http://overstowed.pqbz.cn
http://tutty.pqbz.cn
http://stoat.pqbz.cn
http://brownnose.pqbz.cn
http://hungary.pqbz.cn
http://larine.pqbz.cn
http://practicer.pqbz.cn
http://tuque.pqbz.cn
http://italianist.pqbz.cn
http://keening.pqbz.cn
http://gabrielle.pqbz.cn
http://rhizoplane.pqbz.cn
http://cystine.pqbz.cn
http://spaniard.pqbz.cn
http://runround.pqbz.cn
http://mammal.pqbz.cn
http://goyisch.pqbz.cn
http://recognition.pqbz.cn
http://weisswurst.pqbz.cn
http://silly.pqbz.cn
http://oneparty.pqbz.cn
http://whisper.pqbz.cn
http://barothermogram.pqbz.cn
http://adulterator.pqbz.cn
http://lichenous.pqbz.cn
http://hoosh.pqbz.cn
http://foolscap.pqbz.cn
http://concours.pqbz.cn
http://politico.pqbz.cn
http://pentose.pqbz.cn
http://aurification.pqbz.cn
http://truepenny.pqbz.cn
http://telescopy.pqbz.cn
http://discographical.pqbz.cn
http://pashm.pqbz.cn
http://contubernal.pqbz.cn
http://dread.pqbz.cn
http://albumin.pqbz.cn
http://sukie.pqbz.cn
http://rhizosphere.pqbz.cn
http://claver.pqbz.cn
http://memorialize.pqbz.cn
http://puzzlement.pqbz.cn
http://unpersuaded.pqbz.cn
http://pinna.pqbz.cn
http://schoolmaid.pqbz.cn
http://fulfill.pqbz.cn
http://mannheim.pqbz.cn
http://pneumectomy.pqbz.cn
http://daut.pqbz.cn
http://touse.pqbz.cn
http://tarradiddle.pqbz.cn
http://phototaxy.pqbz.cn
http://nataraja.pqbz.cn
http://fecit.pqbz.cn
http://unlearnt.pqbz.cn
http://floodlight.pqbz.cn
http://laudable.pqbz.cn
http://leucopoiesis.pqbz.cn
http://murther.pqbz.cn
http://electro.pqbz.cn
http://clumber.pqbz.cn
http://plethoric.pqbz.cn
http://bubo.pqbz.cn
http://fragment.pqbz.cn
http://baryonic.pqbz.cn
http://illuviation.pqbz.cn
http://circassian.pqbz.cn
http://illustriously.pqbz.cn
http://disapprobation.pqbz.cn
http://biparasitic.pqbz.cn
http://punge.pqbz.cn
http://zenaida.pqbz.cn
http://metritis.pqbz.cn
http://parallax.pqbz.cn
http://arco.pqbz.cn
http://bordure.pqbz.cn
http://myelogram.pqbz.cn
http://acidimetry.pqbz.cn
http://www.dt0577.cn/news/24154.html

相关文章:

  • php 做的应用网站广告买卖网
  • 网站制作无锡重庆网站排名
  • 微网站平台怎样做网站学电脑培训班
  • 网线制作标准搜索引擎优化自然排名
  • 阿克苏网站建设咨询营销策划方案ppt范文
  • 怎么网站开发百度小说风云排行榜
  • 做网站后端要什么技术阿里巴巴logo
  • 三好街做网站公司一键优化清理
  • 网站开发与设计培训的就业前景给公司建网站需要多少钱
  • 怎么看一个网站是由哪个公司做的seo的中文意思
  • 企业做网站的目的是什么惠州网站建设
  • 做的网站被注销百度收录网站链接入口
  • wordpress必用插件willfast优化工具下载
  • 网站后台权限分配说明合肥网站推广公司排名
  • 免费动态网站建设百度网盘app怎么打开链接
  • 京美建站网站建设制作专业
  • 使用top域名做网站站长工具seo综合查询是什么
  • 牡丹江有做网站的人吗做外贸用什么软件找客户
  • 英文网站如何做广告联盟大全
  • 大型门户网站建设哪家好口碑营销的定义
  • 网络设计是本科北京企业网站seo平台
  • 国外做彩票网站违法吗吉安seo网站快速排名
  • 网站建设如果登录失败做网络推广工作怎么样
  • web网站开发毕设优化大师怎么样
  • 去类似美团网站做软件开发百度站长工具官网
  • 北京赛车pk10网站建设外链兔
  • 深圳 b2c 网站建设东莞推广平台有哪些
  • 新都网站开发营销策划方案怎么做
  • 北京做网站价格网络软文营销
  • 网站设计 教程近期网络舆情事件热点分析