原型设计

原型模式

吃可爱长大的小学妹 提交于 2019-11-27 00:54:22
有的时候,我们需要一个实例时, 并且,当创建一个实例的过程比较复杂或者说是昂贵时, 比如,创建实例的构造函数非常的复杂,在执行这个构造函数时会消耗较长的时间, 同时呢,这个构造函数中的一些信息又没有什么变化 (也就是说创建第一个实例时初始化信息是这样的,创建第二个实例时初始化信息还是还是这样的), 那么直接使用 new 来 创建这样一个实例就显得太昂贵了, 最好的解决方法,并不是使用 new 来实例化一个对象, 而是使用克隆,也就是复制,克隆呢,就是通过复制现在已经有了的实例来创建新的实例, 这样有什么好处呢? 很明显,这样实现呢,客户端根本就不知道具体要实例化的是哪一个类, 它只知道是复制了,但具体的实例化情况,它却是一无所知的,这样便对客户端进行了隐藏, 同时,复制一个对象一般情况下会比创建一个对象性能更高(当然有时候也不一定,只是一般情况而已), 其实上面所提到的就是下面要介绍的一个设计模式--原型模式(Prototype), 原型模式(Prototype) 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的实例。 换句话说,原型模式就是通过复制现在已经存在的对象来创建一个新的对象。 原型模式的结构类图如下: 从上面这副类图中,可以看出,在 AbstractPrototype 中只声明了一个方法,那就是克隆自身。 下面我们就来看一看原型模式的具体实现:

怎么理解js的面向对象编程

我的未来我决定 提交于 2019-11-26 23:56:24
面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)。 官方解释 原型模式如类模式一样,都是是一种编程泛型,即编程的方法论。另外最近大红大紫的函数编程也是一种编程泛型。JavaScript之父Brendan Eich在设计JavaScript时,从一开始就没打算为其加入类的概念,而是借鉴了另外两门基于原型的的语言:Self和Smalltalk。   既然同为面向对象语言,那就得有创建对象的方法。在类语言中,对象基于模板来创建,首先定义一个类作为对现实世界的抽象,然后由类来实例化对象;而在原型语言中,对象以克隆另一个对象的方式创建,被克隆的母体称为原型对象。 一、理解对象: 第一种:基于Object对象 var person = new Object(); person.name = 'My Name'; person.age = 18; person.getName = function(){ return this.name; } 第二种

软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型

為{幸葍}努か 提交于 2019-11-26 23:47:19
一、瀑布模型 1.1 什么是瀑布模型 1970年温斯顿.罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型 瀑布模型将 软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动 ,并且规定了它们 自上而下、相互衔接 的固定次序,如同瀑布流水,逐级下落 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动 从本质来讲,它是一个软件开发架构 ,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生 循环反馈 ,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来 对于经常变化的项目而言,瀑布模型毫无价值 1.2 特点 1、阶段间具有顺序性和依赖性 该阶段具有两重含义 必须等前一阶段的工作完成后,才能开始后一阶段的工作 前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果 2、推迟实现的观点 对于规模较大的软件项目来说,往往编码开始的越早,最终完成开发所需时间越长

助教培训第三次作业——原型设计工具及设计练习

不问归期 提交于 2019-11-26 23:45:11
助教培训第三次作业 —— 原型设计工具及设计练习 一、 3 种原型设计工具的对比分析 1.1 墨刀 本次设计练习采用的是墨刀,使用墨刀的第一感觉,便是上手快速,原型创建非常快捷,不仅是对于团队创建原型还是个人创建项目原型,都是比较好的入门级原型设计工具。但是对于团队协作目前来说是要收取费用的。 墨刀的界面很简洁,整体操作过程很简单,采用简便的拖拽连线操作,这次团队项目的原型设计过程中,云端保存,实时预览,多人协作的体验感很不错,内置组件也丰富齐全。 但是相较于其他两款原型设计工具来说,墨刀在各类跳转上实现的较为简单,难以做到稍微复杂一些的界面跳转,这一点上的保真性较差。 1.2 Mockplus Mockplus 的使用过程也较为简单,相比较墨刀来说,个人认为组件的交互性上做的更好一些,界面也是比较简洁的风格,其余使用感受与墨刀差不多。素描风体现了其原型的核心理念,使用起来方便,快捷,并且有免费版可以使用。专业版更是享受 400+ 图标。为使用者提供了更多地选择。 1.3 Axure RP Axure RP 是在本次体验中最为惊艳的,内置的函数,以及强大的功能,还有各种交互效果的实现。但同时学习使用 Axure RP 是非常难得,需要耗费大量的精力,没有前面两个软件入门快速。相比较前两个软件来说,该软件更适合设计与开发人员交互的原型,可以体现很多逻辑上的交互

助教培训总结——原型设计工具及练习

大憨熊 提交于 2019-11-26 23:44:44
一、3种原型设计工具的对比分析    A.墨刀 1.特别适合新手使用,本次原型设计我们就是采用这个工具,完全没有参考教程,它的设置和功能都很清楚,使用者一眼就能明白; 2.画面感很强,三个工具中,色彩最丰富的就是墨刀,它和我们平常手机,电脑网页界面上的组件相似度最高,设计出来的效果也是很棒的; 3.是三个软件中唯一不用破解就能使用的,自己想要设计简单的小程序和网页原型都很方便,本次团队项目就是免费试用的; 4.用户体验感很好,使用简单,界面简洁,很多现成的模板和组件,可以自定义合成系统有的,和Photoshop一样可以有自己工作的偏好设置。   B.Mockplus 1.打开Mockplus的界面体验感其实一般,色彩不如墨刀,但是它和墨刀的功能差不多,感觉是灰色调墨刀的翻版,操作上也比较简单,有些操作需要看教程; 2.用户体验其实也是不错的,客服端打开就有教程弹出来,可以自行查看; 3.它比墨刀好的地方,个人觉得在于图标库更加丰富,虽然初色调是灰色,但是用户可以自行更改,比如时间选择器(墨刀就没有)。   C.Axure RP 1.没有墨刀和Mockplus轻便,在拖动方面选区很麻烦; 2.专业性强,前两种工具更在于轻便和简洁,用户能快速设计原型,但是Axure RP更加细致,才点进去是空白工作区域,它的绘制工具更多的是使用者自行设置,非常细化,有点考验使用者的审美功底

原型设计工具及设计练习

爷,独闯天下 提交于 2019-11-26 23:37:47
一、Axure RP、墨刀 和 Mockplus3种原型设计工具的对比分析。 Axure — 交互线框软件及原型工具 自诞生以来,Axure立马从众多软件中脱颖而出,并且一直引领着整个原型设计软件行业。 axure作为老牌的原型图工具,功能最齐全,交互最多样,基本任何想要的效果都可以实现,尤其在制作PC端原型图上有优势。 Axure缺点同样也相当明显,Axure的动态面板、中继器等功能都是强大的,但是不容易搞懂。Axure的素材大部分PM 都会在Axure原型库、素材库去寻找相应的第三方素材库,进行载入。 墨刀—最简洁易用的原型设计工具和线框图工具。 可以说是专为移动端产品原型设计而生。 它的免费版本自带的部件、交互、功能,基本上能满足移动端产品原型的设计要求,并且墨刀的控件都是基于APP,以及系统平台IOS和安卓,因此在创建项目时可以首先选择相应的设备布局,减少了不少工作环节。 墨刀也有其缺点,最大的就是不自由,主要体现在:一是仅限移动端产品原型,交互效果、空间组合、操作面板的选择上也都不如Axure 灵活,而且不适用于PC端;二是由于效果切换是采用连线的方式,容易给使用者造成错乱的感觉,影响设计时的体验。另外,如果要使用更强大的共享创建功能,如团队协作、单机版下载,则还需要付费购买。 Mockplus - 简洁高效的原型设计工具 Mockplus作为十分优秀的国产软件

“世界那么大,我想去看看” ——10款精美的旅游网站设计欣赏

断了今生、忘了曾经 提交于 2019-11-26 21:16:48
不知大家是否还记得那个最具情怀的辞职信“世界那么大,我想去看看”。我想我们现在都还没有这个勇气辞职,背起行囊来一场说走就走的旅行。 说起旅行,就想起去年在某著名旅行网站上的体验。网站的设计巧妙,特别是图片有特色也很精美,当时去的是三亚,看了这些图片和介绍后毫不犹豫的就去了。为了更多的订单量,网站设计也会想尽一切办法来“留住”用户。在我看来,旅游网站的设计的图片选择是更能打动用户,当然用户体验不能太糟。以下总结的9个旅行网站的设计tips,大家可以参考: 用户需要一目了然的重点 用合适精美的大图作为背景 完整详细的酒店信息 切换图片时减少误点可能 特别信息应该特别标注 图文并茂的生动点评页 手机端友好 减少输入框和必填项 真实性 接下来介绍的这10个优质的旅游网站设计例子都是基于以上的设计原则选取的,让人看了就想背起背包来一场说走就走的旅行。 1. Airbnb Airbnb是一个旅行房屋租赁社区,用户可通过网络或手机应用程序发布、搜索度假房屋租赁信息并完成在线预定程序。你可以在伦敦、巴黎、日本、罗马等国家享受当地的美食和文化。据 官网显示 ,其社区平台在191个国家、65,000个城市为旅行者们提供数以百万计的独特入住选择,不管是公寓、别墅、城堡还是树屋。Airbnb被时代周刊称为“住房中的EBay”。 UI 设计:网站的整体风格主要是以陈列图片为主,图片不但有当地的特色文化

设计模式之GOF23原型模式01

穿精又带淫゛_ 提交于 2019-11-26 17:52:10
原型模式prototype 原型模式: - 通过new产生一个对象需要非常繁琐的数据准备或者访问权限,则可以使用原型模式,比如如果new对象所需时间过长,可以通过克隆产生相同的副本 - Java中的克隆技术,就是以某个对象为原型,复制出新的对象,显然新的对象剧本原型对象的特点 - 克隆类似new但是并不相同,new出的对象都是默认值,克隆出来的对象的属性值与原型对象相同。浅复制时,复制出的对象的属性如果是引用的类型,则指向同一地址;深复制时, 复制出的对象的属性与原型对象属性的引用不应指向同一地址,这就保证了修改原型或副本属性值时,不会影响另一对象 - 优势:效率高(直接克隆,避免了重新执行构造过程步骤) 原型模式实现步骤: - Clongable接口(空接口)与重写clone方法 - 深复制时需要调用属性引用对象的clone方法 /**原型模式(浅克隆) * 属性中的引用对象不进行复制(指向同一块内存) * @author 小帆敲代码 * */ public class Sheep implements Cloneable{ private String name; private Date birthday; @Override protected Object clone() throws CloneNotSupportedException { return super

Axure RP入门知识-基础功能介绍(三)

廉价感情. 提交于 2019-11-26 16:59:58
Axure RP 9 Mac这款原型设计软件能让设计者快速创建应用软件,或者在web网站的线框图、流程图、原型和规格的设计制作,从低到高的视觉和交互保真度的全方位构建,是目前业界首屈一指的交互式产品原型设计软件! 21、 设置元件默认选中/禁用 元件的属性中可以对一些元件的默认状态进行设置,可以设置的状态包括【选中】和【禁用】,默认状态的设置,可以触发属性中设置的交互样式。比如设置某个元件在浏览器中默认为禁用的灰色,就需要勾选【禁用】(复选框),并设置【禁用】的交互样式。 除了禁用与选中个别元件还具有【只读】的设置。例如:文本框与多行文本框。 22、设置单选按钮唯一选中 全选所有的单选按钮,在元件属性中{设置单选按钮组名称},即可实现唯一选中的效果。 23、设置元件不同状态的交互样式 点击元件属性中各个交互样式的名称,即可设置元件在不同状态时呈现的样式。这些样式在交互被触发时,就会显示出来。)比如设置元件默认状态为禁用,在浏览原型时,页面打开后就会显示该元件被禁用的样式。 24、设置图片文本 设置图片文本需要在图片上点击<鼠标右键>,选择【编辑文本】,方可进行图片上的文字编辑。 25、切割/裁剪图片 在图片的元件属性中,设有切割和裁剪功能的图标,点击即可使用相应功能。元件上点击<鼠标右键>,菜单中也有相应的选项。 切割:可将图片进行水平与垂直的切割,将图片分割开。 裁剪

团队项目-Beta版本发布

谁都会走 提交于 2019-11-25 22:44:41
这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 众志陈成 这个作业的目标 通过团队协作了解软件开发的大致流程,并在这个过程中体会调整与优化程序的方法,为以后真实的软件开发奠定基础 一、Alpha版本未完成任务: 编码部分 Alpha版本已完成代码的编写 原型部分 1.由于是多人合作完成,整体呈现风格还未统一 2.部分页面布局较乱,影响用户体验 3.页面无动画过渡效果,与用户交互时较为突兀 4.部分页面设计粗糙,用户体验较差 二、项目展示 1.编码部分 Github地址: https://github.com/NyimaC/YouSuggest 操作方法: 根据题目回答问题即可(共6道单选题),回答完成后会根据回答结果生成部门推荐。 2.原型设计部分(请务必下载至本地后用MockPlus查看) 下载地址: https://pan.baidu.com/s/1ENHtgtrQy0AKQD-j-HWjig 提取码:4e61 部分页面改动展示: 登陆界面: 最初版本: Beta版本: 主界面: 最初版本: Beta版本: 个人资料界面: 最初版本: Beta版本: 题目展示界面: 最初版本: Beta版本: 社团推荐界面: 最初版本: Beta版本: 社团详情界面: 最初版本: Beta版本: 三、项目情况总结 1.α版本已完成内容 编码部分 题目生成及选择