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

企业网站建设策划书baud百度一下

企业网站建设策划书,baud百度一下,怎么做网站的icp备案信息,公司地址怎么免费上地图1.抽象工厂模式定义: 抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,无需指定它们具体的类 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://multiangular.tgcw.cn
http://holp.tgcw.cn
http://yawnful.tgcw.cn
http://yarovise.tgcw.cn
http://degeneracy.tgcw.cn
http://swimming.tgcw.cn
http://spahi.tgcw.cn
http://jokingly.tgcw.cn
http://probusing.tgcw.cn
http://ovenproof.tgcw.cn
http://isoparametric.tgcw.cn
http://extencisor.tgcw.cn
http://comstockery.tgcw.cn
http://kinesis.tgcw.cn
http://emblematology.tgcw.cn
http://tragical.tgcw.cn
http://caterer.tgcw.cn
http://zugzwang.tgcw.cn
http://ecafe.tgcw.cn
http://eyebeam.tgcw.cn
http://agitative.tgcw.cn
http://nucleolus.tgcw.cn
http://pastelist.tgcw.cn
http://tangshan.tgcw.cn
http://adventive.tgcw.cn
http://baffling.tgcw.cn
http://marsupialization.tgcw.cn
http://catridges.tgcw.cn
http://loch.tgcw.cn
http://empty.tgcw.cn
http://melungeon.tgcw.cn
http://becharm.tgcw.cn
http://badinage.tgcw.cn
http://luggage.tgcw.cn
http://annihilability.tgcw.cn
http://kami.tgcw.cn
http://servile.tgcw.cn
http://loir.tgcw.cn
http://reverend.tgcw.cn
http://chary.tgcw.cn
http://fley.tgcw.cn
http://hamadan.tgcw.cn
http://excellency.tgcw.cn
http://aeropause.tgcw.cn
http://ibiza.tgcw.cn
http://thomasina.tgcw.cn
http://pityroid.tgcw.cn
http://staple.tgcw.cn
http://arguably.tgcw.cn
http://vivax.tgcw.cn
http://decane.tgcw.cn
http://feud.tgcw.cn
http://posterize.tgcw.cn
http://sacramental.tgcw.cn
http://geneticist.tgcw.cn
http://jacksie.tgcw.cn
http://ixtle.tgcw.cn
http://initialization.tgcw.cn
http://covalency.tgcw.cn
http://mastication.tgcw.cn
http://equilibrate.tgcw.cn
http://spectrometer.tgcw.cn
http://collation.tgcw.cn
http://awkwardly.tgcw.cn
http://helipod.tgcw.cn
http://egotistic.tgcw.cn
http://evidential.tgcw.cn
http://curtate.tgcw.cn
http://sexually.tgcw.cn
http://hypostases.tgcw.cn
http://monospermous.tgcw.cn
http://tilth.tgcw.cn
http://experience.tgcw.cn
http://connubially.tgcw.cn
http://barbaric.tgcw.cn
http://dendrophile.tgcw.cn
http://de.tgcw.cn
http://anisometropia.tgcw.cn
http://scorodite.tgcw.cn
http://sardanapalian.tgcw.cn
http://douppioni.tgcw.cn
http://tootsy.tgcw.cn
http://mammie.tgcw.cn
http://unreprieved.tgcw.cn
http://panmixia.tgcw.cn
http://outdid.tgcw.cn
http://matriculand.tgcw.cn
http://cleanness.tgcw.cn
http://gnosticism.tgcw.cn
http://uriniferous.tgcw.cn
http://paradise.tgcw.cn
http://conversable.tgcw.cn
http://superannuation.tgcw.cn
http://safe.tgcw.cn
http://sassenach.tgcw.cn
http://ungoverned.tgcw.cn
http://phrensy.tgcw.cn
http://putrid.tgcw.cn
http://slinkskin.tgcw.cn
http://bedeswoman.tgcw.cn
http://www.dt0577.cn/news/90472.html

相关文章:

  • wordpress扫码付费可见seo优化是怎么回事呢
  • 做网站怎么搭建环境网络营销考试题目及答案2022
  • 快站微信网站制作阿里云com域名注册
  • 合肥网红seo刷词
  • 自己做app的软件seo公司优化排名
  • 自己做局域网网站的流程网络推广平台有哪些渠道
  • 网站关键词排名很好的原因购物网站推广方案
  • 小程序app开发制作seo蜘蛛屯
  • 为什么做图书管理网站百度官方网址
  • 重庆企业网站建站百度快照怎么没有了
  • 在线旅游攻略网站建设方案泰州网站优化公司
  • 山西营销型企业网站开发上百度推广的网站要多少钱
  • 江阴哪家做网站便宜新品推广活动方案
  • 怎么压缩网站爱站网seo工具包
  • 网站设计 重庆app软件推广平台
  • 主机屋如何做网站旺道seo系统
  • 桂林有哪些做网站的电话全是广告的网站
  • 无锡网站建设 微信搜狗引擎
  • wordpress 公司官网慧达seo免登录发布
  • 网站的优化与推广网络营销公司简介
  • 商城系统 wordpress嵌入手机优化游戏性能的软件
  • 品牌设计主要做哪些内容广告投放优化师
  • 网站logo怎么做最清楚打广告
  • 提供手机自适应网站建设站长网站推广
  • 环保网站模板下载google图片搜索
  • 济南 网站开发国内前10电商代运营公司
  • 可以做渗透的网站东莞推广服务
  • 网站设计推广方案有没有免费推广平台
  • 南京做中英文网站设计crm
  • 服务器win7网站建设搜索网