展开

关键词

设计模式-依赖倒置

public interface IDriver { //是司机就应该会驾驶 public void drive(ICar car); } public class Driver } } public interface ICar { //是就应该能 public void run(); } public class Benz implements ICar{ //肯定会 public void run(){ System.out.println("开始运行..."); } } public class BMW implements ICar{ //宝马当然也可以开动了 public void run(){ System.out.println("宝马开始运行 \] args) { IDriver zhangSan = new Driver(); ICar benz = new Benz(); //张三开

19710

设计模式六大原则(三)----依赖倒置原则

Benz(); Driver driver = new Driver("张三"); driver.driver(benz); } } 有一个驾驶员张三可以驾驶 , 于是最开始我们思考, 会有一个驾驶员类, 有一个类. 如果张三有一天要开大众, 还要增加一个大众类, 同时还得挂载司机名下. 不是所有的人都要开驰, 开宝马. 开大众. IDriver的实现类驾驶员可以driver任何类型的, 所以传入参数也是一个接口ICar. 任何类型的, 都可以通过实现ICar接口注册为一种新的类型. 当客户端调用的时候, 将对应的传入就可以了. 三.

19130
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    设计模式 | 建造者模式

    例如,一辆由轮子,发动机以及其他零件组成,对于普通人而言,我们使用的只是一辆完整的,这时,我们需要加入一个构造者,让他帮我们把这些组件按序组装成为一辆完整的。 例如 有个订单:驰、宝马的辆模型都交给我我们公司制作了,不过这次又额外增加了一个需求: 的启动、停止、喇叭声音、引擎声音都由客户自己控制,他想什么顺序就什么顺序。 BenzModel */ class BenzModel extends CarModel { protected function start() { echo '起来是这个样子的 engineBoom() { echo '宝马的引擎是这个声音的'; } } // 我先要个驰的模型,这个模型的要求是的时候, 先发动引擎,然后再挂档启动 setSequence(['engineBoom', 'start', 'stop']); $benzModel->run(); echo PHP_EOL; /** * 上面虽然实现了基本随意更换构建的过程

    18410

    23种设计模式之单一职责原则

    public static void main(String[] args) { Vehicle vehicle = new Vehicle(); vehicle.run(" ); } } 输出结果 在公路上飞 飞机在公路上飞 这时我们的run方法违反了单一职责原则 因为不管什么样的交通工具都会在公路上 我们可以看到 在公路上是正确的 飞机也在公路上就不对了 main(String[] args) { RoadVehicle roadVehicle = new RoadVehicle(); roadVehicle.run(" ("蛟龙号"); } } /** * 交通工具类 */ class Vehicle2{ /** * run方法违反了单一职责原则 因为不管什么样的交通工具都会在公路上 public void runWater(String vehicle){ System.out.println(vehicle+"在水中运行"); } } jeep在公路上飞

    8710

    设计模式——三:依赖倒置原则

    以司机驾驶为例: 3-1:司机驾驶类图 image.png 提供一个方法run,代表辆运行。 类: public class Benz { // public void run(){ System.out.println("开始运行..."); } } 司机通过调用的run方法开动. 接口及两个实现类: public interface ICar { public void run(); } //类 public class Benz implements ICar { public void run(){ System.out.println("开始运行..."); } } //宝马类 public class BMW implements

    22530

    CES首日:厂商“争奇斗艳”拼智能,健康检测机器人受热捧

    “争奇斗艳”拼智能 正如CES Asia官网写到:“今年,参展制造商数量超过了任何一个亚洲科技展。”CES首日,在众多行业与产品的中,关注度最高、最火的参展行业正是行业。 知名品牌凯迪拉克、梅赛德斯-驰、现代、拜腾、奇点等汇聚于此,并纷纷“亮剑”。 ? 有不少看展的人进入展厅便直这款而来。 ? 图 | 百度自动驾驶电动小巴 与上面提到的传统品牌不同,这次CES上百度在领域上也“插了一脚”,向大众展示了“阿波罗量产级自动驾驶电动小巴”。 它就是用意念控制赛的Brainco。其产品包括头部佩戴的头环、的赛道、、以及后台的系统APP等。 当人佩戴头环专注力高的时候,头环的显示变成红色,位于道中原本停止的小会开始起来,并且专注度越高,小的速度也就越快。 ?

    27940

    8.设计模式--桥接模式(Bridge模式)

    假如有一个类,然后有三个品牌分别是宝马、奥迪、驰,而每一个品牌又有三种分别是、轿、suv;同时他们的关系都是通过继承来实现的,此时可以看到当需要新增一个类的品牌的时候需要新增多个子类,必须新增捷豹 ,此时也需要新增、轿、suv,而新增一个皮卡的时候可能也需要在驰、宝马、奥迪中新增子类。 同时中的类不仅存在类的功能层次结构而且存在类的实现层次结构,这样非常的复杂。 SportsCar继承Car类表示,打印信息以及调用父类的品牌信息,同时拥有自己的方法开启敞篷,此时可以看到SportsCar增加了convertible方法,也就是类的功能层次结构,同时重写了 到此整个桥接模式完毕,使用Test进行测试,可以看到此时不再使用继承,而是使用组合的方法,需要什么品牌以及什么样的都可以通过组合,且可以增加独有的方法,例如的开启敞篷。

    8220

    MIT自动驾驶导航系统,不看地图也能穿梭乡间野路

    谷歌也只在几座主要城市测试过自动驾驶,却已经在各种道、路肩以及停标志的3D位置标注上,消耗了大量时间。因为,自动驾驶系统对位置数据的精确度要求很高。 是靠地图来了解自己所在的位置,然后判断当下应该采取怎样的动作。 我想起,夕阳下的 CSAIL团队开发了名为MapLite的一套框架,让自动驾驶在“查无此路”的小道上,抛开三维地图的束缚,自在地。 ? 这是在一台普通PC上 (频率5Hz) 出的结果。如果用GPU的话,或许还可以开得更快。 那时,在城区自动驾驶可以用三维地图导航,到了陌生的乡野还能像人类司机那样自如地开

    33020

    python高级-面向对象(11)

    例如:周杰伦、地球、老王的宝马、小李的泰迪 大众(类):没办法确定那一辆,大众生产的都叫 大众宝来(类):大众宝来也是所有宝来的类,只不过比大众的范围小一点而已,也可以理解为大众宝来类是大众类的子类 我的大众(对象):可以确定,因为我就一辆大众。不会有人卖两辆大众吧,如果有还不如去买一辆奥迪是不是。 创建对象的格式为: 对象名 = 类名() 创建对象demo #定义类 class Car: def move(self): print("") #创建对象 BMW = Car() #对象调用方法 BMW.move() #给对象添加属性 BMW.name = "宝马" #通过点语法调用对象属性 print(BMW.name) 运行结果为: 宝马 说明: BMW ") #创建对象 bmw = Car("宝马","黑色") print("这是一辆%s牌"%bmw.name) print("这辆的颜色是%s"%bmw.color) 运行结果为: 这是一辆宝马牌

    26830

    深入理解Java的三种工厂模式

    被创建实例的类型可以是接口、抽象类,也可以是具体的类 实现接口 public interface Car { String getName(); } 驰类 public class Benz 显然是不存在的,每一个品牌都有自己的生产工厂,都有自己生产技术。 而且我们在代码中生产一辆只是new一下就出来了,但实际操作中却不知道需要进行多少操作,加载、注册等操作都将体现在工厂类中,那么这个类就会变得紊乱,管理起来也很不方便,所以说每个品牌应该有自己的生产类 二、工厂方法 工厂接口 //定义一个工厂接口,功能就是生产 public interface Factory { Car getCar(); } 驰工厂 public class BenzFactory 但大家看一下测试类,当一个人想要去买一辆宝马的时候(假设没有销售商),那么他就要去找宝马工厂给他生产一辆,过几天又想要买一辆的时候,又得驰工厂请人生产,这无疑就增加了用户的操作复杂性。

    12410

    中国自主研发的新型军用仿生机器人,不输美军机器狗

    我军工自主研发“号”军用仿生机器人 在战场上每个士兵都恨不得多带弹药和给养,但是每个士兵的体能极限也只能背负60公斤,在战斗状态,这个数还得减半。 虽然通过小型机动辆来伴随保障,但军工们并不满足。 除了大力发展外骨骼系统提升单兵负重能力外,美国军方推出了一种仿生机器人,这种仿生机器人外形就像一只没有头的犬类,只有四条腿和一个躯干,绰号“大狗”。 “大狗”由波士顿动力学工程公司研制,它的动力是一台油内燃机,靠液压驱动行走和动。其高移动性,可负重180公斤的物体不间断行走20英里、平地速度是7英里,还可以慢5英里的速度通过崎岖复杂地形。 我军工自主研发“号”军用仿生机器人 目前我国军工也发展出这种仿生机器人。它总重250公斤,负重能力有160公斤,通过垂直障碍能力为20厘米,爬坡角度30度,行军速度最高为5公里,续航时间2小时。 近日一台名为“号”的国产山地四足仿生移动平台,参加了解放军陆军装备部主办的“跨越险阻2016”地面无人系统挑战赛,在比赛中发挥出色,获50米竞速和综合越野第一名。

    1.3K60

    共享初体验:惊喜很多,槽点也不少

    南京现阶段共享的最大问题在于,网点实在太少。 最近,听说南京也有了共享,各种消息简直刷爆了朋友圈。 扫码就能开上驰宝马?这么拽的撩妹神器,小编是一定不会错过的! 也就是说,现阶段APP中的信息还无法保证是否真实,很可能出现辛辛苦苦过去之后,发现并没有,这就很尴尬了。 还有,目前开放的网点还很少。 不过等以后类似驰、宝马也上线,价格就会比较“豪华”了,毕竟撩妹也是需要成本的不是? ? 小编开了45分钟,都没花到10块钱 但是! 因为共享用的都是纯电动,所以想着开它长途的小伙伴,还是洗洗睡吧! 为了可以测试一下辆到底能多快,小编就去了南京绕城公路上了一段,最高只能到87km/h。得亏绕城的最低限速有80km/h,不然小编还可能要吃罚单了! ?

    21950

    吉利花90亿美元成驰母公司最大股东,背后打的什么算盘?

    公开信息显示,戴姆勒是全球第二大豪华生产商,全球最大的商用制造商。公司旗下包括梅赛德斯-、梅赛德斯-驰轻型商用、戴姆勒载重和戴姆勒金融服务等四大业务单元。 2017 年 6 月,吉利收购马来西亚 DRB-HICOM旗下宝腾(PROTON)49.9%的股份以及豪华品牌路特斯(Lotus)51% 的股份。 戴姆勒股份公司董事会主席、梅赛德斯-集团全球总裁蔡澈博士曾公开表示,「智能互联」、「自动驾驶」、「共享出行」、「电力驱动」这四个维度将成为驰产品打造的主要驱动力。 方面,戴姆勒旗下品牌驰的很多型也早已配备了多种半自动驾驶功能(类似特斯拉 Autopilot 的道保持和距保持等)。然而,半自动和自动驾驶之间还存在巨大的鸿沟。 两个数据相除得到 MPD(Miles Per Disengagement),顾名思义,每发生一次自动驾驶的中断出的里程。

    39330

    “濒死”

    ▌失控的驰 2018 年 3 月 14 日晚 8 点左右,在河南通往陕西的连霍高速上,一辆处于“定速巡航”状态的驰 C200L 失灵,无法切换行驶模式,致使挡位等系统无法正常运行,时速被锁死在 软件故障,有可能内存运算溢出,导致软件飞。 电子换挡系统可能发生故障。驰 C200 应该是电子换挡,这种情况下如果挂到 N 档,会直接退出,但该事故有可能是发生了电子换挡器卡死。 如此来看,此次驰事件发生的原因很可能与丰田事件如出一辙。 ▌后台真的能远程操控? 此事一开始就有一个不实信息在广泛传播:失控的最后是靠后台远程操控才将停下的。 如此来看,一些网友和未弄清事由的媒体应该根据此事联想到了主的遭遇。 毕竟,对高速狂而言,一丝意外都将是致命的。

    52850

    Java设计模式之建造者模式

    因为我们公司制造的悍马得到了客户的满意(Java设计模式之模板方法模式),所以宝马和驰也纷纷要和我们公司合作,但是客户提出了新的需求:的启动、停止、喇叭声音、引擎声音都由客户自己控制,他想什么顺序就什么顺序 "engine boom"); sequence.add("start"); sequence.add("stop"); //我要一个和一个宝马运行的顺序都是上面定义的那个顺序 BenzBuilder benzBuilder = new BenzBuilder(); benzBuilder.setSequence 增加了Director类,这个类是做了层封装,类中的方法说明如下: A 型号的辆模型是只有启动(start)、停止(stop)方法,其他的引擎声音、喇叭都没有; B 型号的是先发动引擎(engine ,B类型的100万辆,C类型的宝马1000万辆,D类型的不要: public class Client { public static void main(String[] args)

    28630

    面向对象的初步理解连载 7

    每个对象都有他的属性和行为,比如小狗,棕色的皮毛,圆圆的眼睛,这是它的属性,小狗可以,可以叫,这是它的行为。什么是对象,现在很清楚了: 对象:世界中客观存在的东西,具有自己的属性和行为 2. 再看,的小图,虚线的 car 则是一个类的概念,这里可以把它理解为的设计,也是模板,这里面包含了所有共有的一些属性和行为,右边三个不同颜色不同品牌的,则是真实的对象。 OK,假如你是一个外星人,刚来到地球,看到马路上的四个轮子的,搞不懂是什么。 那么在 Java 中怎么来使用对象呢,在上面的过程中,我们编写了一个 的类(Car),怎么样根据这个的模板,来生产呢。 品牌:polo 颜色:green 速度:180 正以200的速度狂 启动了...... 品牌:mini 颜色:blue 速度:120 正以80的速度狂 启动了......

    28590

    数据分析:研究奥迪、宝马、驰新能源用户特点与差异

    新能源的推广是国家战略。中国新能源市场已经起步,并且发展迅速。国内厂商已经争相争夺新能源的市场份额。在国内有比亚迪、北新能源等引领者,传统上的强势进口品牌也力争在这一波潮流中争得一席之地。 我们以奥迪为例,基于主流论坛(之家、爱卡、易、太平洋)的新能源关注用户,对比奥迪新能源的关注用户和老对手宝马新能源、驰新能源的关注用户相比,得出奥迪新能源在用户画像上的特点,并使用统计学上的量化方法对三者的用户画像差异加以量化 这也和奥迪新能源官方通过参与例如Formula E等赛事宣传的运动型的品牌定位相一致。 因为在对比型的时候,不同维度的用户特征可能指向不同的方向(例如奥迪新能源和驰新能源的性别差异较大,但年龄差异较小),而且不同维度的差异程度则不能直接相比较(例如年龄上相差1岁和性别比例上相差1%不可以直接比较 以性别差异为例,驰新能源的女性占比远远高于其余二者,所以驰和宝马、驰和奥迪的性别差异值都较大,而奥迪和驰的性别差异值较小,低于整体均值(小于0)。

    2.1K60

    【设计模式】第三篇:一篇搞定工厂模式【简单工厂、工厂方法模式、抽象工厂模式】

    ,首先我们有一个抽象的 Car 类 public abstract class Car { // 任何都会 public abstract void run(); } 接着就是它的子类 Override public void run() { System.out.println("【驰】在路上"); } } 那如果我想要实例化这个类,实际上最原始的写法可以这样 ,一个宝马类和一个驰类是其子类 public abstract class Car { // 任何都会 public abstract void run(); } public 】在路上"); } } 如果是简单工厂类,就会 有一个总的工厂类来实例化对象,为了解决其缺点,工厂类首先需要创建一个工厂接口类 public interface CarFactory { // 可以获取任何 Car createCar(); } 然后宝马和驰类分别实现它,内容就是创建一个对应宝马或者驰(实例化宝马类或者驰类) public class BaoMaFactory

    17020

    中国“大狗”四足机器人曝光,夺得全国越野比赛冠军

    【新智元导读】中国最新研制的四足步行机器人“号”近日参加了解放军陆军装备部“跨越险阻2016”地面无人系统挑战赛并获得冠军。 这一名为“号”山地四足仿生移动平台的中国国产机器人,参加了解放军陆军装备部“跨越险阻2016”地面无人系统挑战赛。 ? “号”一举夺得50米速度、综合越野桂冠。 ? 上图为“号”在比赛中行进。 通常这类四足步行机器人采用油发动机作为动力,通过复杂的液压与电气系统,驱动四只带有多个关节的机械腿,以仿生形式行进。 “号”的“跨越险阻2016”赛果令人振奋,我国无人平台的综合实力已经看齐国际最先进水平,在部分指标上超越美国波士顿动力公司的“大狗”四足机器人。 ? 不难预见,中国科研单位也将在“号”机器人的基础上,发展出更多、更强大、更多用途的机器人型号,甚至为我军研制出勇往直前的战斗机器人!

    81350

    苹果与宝马和驰关于自动驾驶的谈判告吹,退而求其次选择与大众合作

    现在,这家科技巨头选定了大众作为合作伙伴,虽然这并不是苹果的第一选择。 据知情人士透露,近年来,苹果与豪华制造商宝马和驰寻求合作开发全电动自动驾驶。 苹果退而求其次选择与大众达成协议,将制造商的新款T6 Transporter货转变为苹果公司为员工提供的自驾服务。 苹果与大众之间的交易,以及与其他制造商谈判的失败以前从未有过报道。 公司首先与加拿大-奥地利合同制造商麦格纳斯泰尔合作,该公司为其他制造商生产小批量,如驰G-Wagen。几十名麦格纳斯太尔员工加入了加利福尼亚州的苹果队,但在合作结束后逐渐离开。 苹果另外也青睐驰。三位知情人士表示,两家公司进行一年多的合作谈判。但由于对经验和数据的控制方面存在类似的分歧,谈判停止了。 一位前员工称,苹果还与日本的日产,中国的比亚迪和英国的制造商迈凯轮等公司进行了会面。没有任何谈判达成协议,因为制造商不愿意放弃控制权,而苹果公司希望找到更有吸引力的合作伙伴。

    18520

    相关产品

    • 汽车租赁系统

      汽车租赁系统

      汽车租赁系统( CRSYS )为拥有车辆资源,正在线下开展租赁业务的企业,提供数字化系统。企业通过该系统可拥有媲美大企业的全数字化能力,拥有自己独立的客户端、运营门店端和业务系统。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券