阿里电视机体验记

Design pattern

看电视的郁闷

平日电视机节目已经很少看了(除了CC电视9记录频道),看电视重要看互联网内容,显示的是“只看自己想看的”原则。有线电视机提供了“互动电视机”功效,有一点象互联网内容,可惜其中的免费电影大多数是预告类,或者是很古老的,没有太大的兴味。另外就是用遥控器操作相比劳苦,用户界面设计、使用流程令人憋屈,例如免费的电影也要出付费界面确认,真是多此一举。目前播音无线电视拿到运营资格,希望她们在这方面有所革新。

周末闲来无事,准备折腾折腾用哪些艺术让大电视看视频更利于一些,于是有了下边的笔录。

成百上千人应该听说过设计模式(Design
pattern),又或多或少的看过或用过设计形式,不过实际上用在开发进程中总有点不可以的感觉到。那一定是对设计情势的精晓有些许错误或者不够浓密。先不谈某种现实的情势,先来探望如何是设计格局?

从概论结合实际场景分析

天猫魔盒出场

早年到庭1111运动中奖一台天猫魔盒,当时有兴奋劲的时候看的多一些,后来就搁置了。这会儿又想起来了,拿出来折腾一下。
起初后似乎发觉有新本子要更新,这就立异吧。等了好久没结果,忍不住重启了。本次直接进去中期的界面。

哪些是设计格局?

设计格局是一套代码设计「经历的总计」。项目中「合理的」运用设计情势可以「高明的缓解许多题材」。

  • 经历的总括:抱着「代码虐我千百遍,我待代码如初恋」的心气,最终得出去的「套路」。

  • 创制的:要对设计情势的拔取情状有自然的认识后才使用,「不要滥用」。如:输出一句“hello
    world”,非要强行给加上各样格局。
    问:“为什么”,答:“总感到少了格局!”。

  • 巧妙的解决了不少题目:被广泛应用的缘由。

为什么要发起“Design
Pattern呢?根本原因是为了代码复用,扩展可维护性。那么怎么才能促成代码复用呢?

阿里电视援手助攻

刚才等待的时候,想到现在有许多手机App能与盒子连接,天猫也应该有呢?搜索拿到“阿里电视帮手”,尽管名字不完全一致,揣摸功能差不多,一个字:装!
果真前面就连续上了,提供了手机遥控器功效,操控就有利于多了。
手机内部一直接纳一个电影,让投影到电视上播报,试验提醒:电视机版本低,不可能连接。没办法,升级电视机操作系统版本,于是又是遥遥无期的等候。
新生终于得以了:把手机电影投影到电视。甚至,不止是这些App,其他App如知乎云课堂、优酷等的录像都足以投影到电视,等于天猫魔盒提供了同频器效用,这终究一个竟然的拿到。

设计格局之六大口径

葡京注册赠送88,移动硬盘上

天猫魔盒前面有一个USB接口,把移动硬盘接入,启动暴风影音,选用播放本地视频,果然不负众望!
自然也有遗憾,如若让暴风扫描移动硬盘中的录像,剩下的就是苦苦的等候,且不能收场。直到绝望关闭魔盒重启,改为手动选项路径,才就此躲过一劫。

开闭原则(Open Close Principle)

1988年,勃兰特·梅耶(伯特rand
Meyer)在她的作文《面向对象软件构造(Object Oriented Software
Construction)》中提议了开闭原则,它的原稿是那般:“Software entities
should be open for extension,but closed for modification”。

  • 情趣:软件模块应该对扩张开放,对修改关闭。
  • 举例:在先后需要开展增产效率的时候,不可能去修改原有的代码,而是新增代码,实现一个热插拔的机能(热插拔:灵活的删除或丰盛效果,不影响到原有的功效)。
  • 目标:为了使程序的扩大性好,易于维护和升级。

挖宝App

除却看视频、装App,还有哪些好玩的啊?

在采用手机遥控器的时候,注意到除了最广大的“按键遥控”形式,还提供“体感遥控”、“游戏手柄”和“方向盘”等格局,逐个试试看。

“体感遥控”自然是和体感游戏相关,安装了一个羽毛球游戏,开端试验。即使刚先导对操作按钮的效能不太熟稔,经过一番形式基本认同“B”是废除,“A”是认同,如此就足以玩了。对战先导,用手机作为羽毛球拍,打起来也好不容易那么五回事,跳起来很快拍下,模拟扣球动作,哈哈,赢了!好不容易一局结束,累的充足,看来玩这一个游乐也是在家磨炼的一种好格局了。需要注意的是,正如手机指示,用手机玩体感游戏,千万注意不要把手机不小心甩出去。

阿里电视帮手还提供了一部分健身、瑜伽、太极等采纳,对于促进在家锻练相信大有裨益吧。

无意发现一个手机唱歌的App“歌吧”,当时觉得是“唱啊”,赶紧在手机上安装、打开唱啊,却发现不能够和屏幕上的选取举办二维码扫描连接。仔细一看,然来以此动用是“歌呢”,不是“唱呢”。重新安装,连接,试验成功。尝试在手机上唱歌,声音和画面从电视机里出来,似乎家庭卡拉OK就如此搭建起来了。可是这个不满的是,电视播放出来的响动延迟相比厉害,且回音太大,总体效能难以承受。

完全来看,通过互联网拔取,可以带动电视利用率显明升级。当然要达成极致效果,还亟需魔盒硬件、网速、周边设备硬件等更是升级,与软件卓殊达到天衣无缝的境地,才能更好地掀起众人回到电视机身旁。

里氏代换原则(Liskov Substitution Principle)

  • 趣味:里氏代换原则是延续复用的水源,只有当衍生类可以替换掉基类,软件单位的功用不面临震慑时,基类才能真正被复用,而衍生类也可以在基类的基本功上增加新的行为。
  • 举例:球类,原本是一种体育用品,它的衍生类有篮球、足球、排球、羽毛球等等,假使衍生类替换了基类的本原方法,如把体育用品改成了食用品(那么软件单位的效用受到震慑),就不适合里氏代换原则。
  • 目的:对落实抽象化的具体步骤的标准。

借助倒转原则(Dependence Inversion Principle)

  • 情趣:针对接口编程,而不是本着落实编程。
  • 举例来说:以电脑连串为例,无论主板、CPU、内存、硬件都是在针对接口设计的,假设针对落实来设计,内存就要对应到针对某个品牌的主板,那么会出现换内存需要把主板也换掉的两难。
  • 目标:降低模块间的耦合。

接口隔离原则(Interface Segregation Principle)

  • 动用三个隔离的接口,比使用单个接口要好。
  • 举例来说:比如:登录,注册时属于用户模块的多少个接口,比写成一个接口好。
  • 目标:提升程序设计灵活性。

迪米特法则(最少知道原则)(Demeter Principle)

1987年夏日由美利哥诺思(North)eastern University的伊恩(Ian)Holland指出,被UML的创始者之一[Booch]等推广。后来,因为在经典著作《
The Pragmatic Programmer》而闻明遐迩。

  • 情趣:一个实体应当尽量少的与其它实体之间暴发互相效能,使得系统功能模块相对独立。
  • 举例来说:一个类公开的public属性或方法越多,修改时涉嫌的面也就越大,变更引起的高风险扩散也就越大。
  • 目标:降低类之间的耦合,减弱对任何类的依靠。

单纯任务规范( Single responsibility principle )

该原则由罗Bert·C·马丁(马丁)(Robert(Bert)(Robert) C.
马丁)于《敏捷软件开发:原则、形式和履行》一书中提交的。马丁代表此条件是基于汤姆·狄马克(TomDeMarco)和Meilir
Page-琼斯(Jones)的编写中的内聚性原则发展出的。

  • 意思:一个类只担负一个功力领域中的相应职责,或者可以定义为:就一个类而言,应该唯有一个引起它生成的由来。
  • 比方:该条件意思简单到不需要举例!
  • 目的:类的纷繁降低,可读性提高,可维护性进步。

刚出道的时候,在想怎么的代码是好代码?看到成千上万前辈的文字都说好的代码要符合「高内聚,低耦合」,可是我听到这样的演说,是这般的

而最近对设计情势有了肯定水平上的上学,感觉懂了一部分,小伙伴们你们学会了吧?

高内聚,低耦合?

  • 内聚是从效能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它讲述的是模块内的效应互换;
  • 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块直接口的复杂程度、进入或访问一个模块的点以及经过接口的多寡。

推荐阅读:
LOL设计形式之「策略情势」