之前的章节,学过了OOA,以及交互图+类图.本章主要讲述OOD.OOD就是面向对象设计,那如何进行对象设计? 概览 1.输入制品 注:这些制品并非都必要. 2.活动 1).针对输入的制品,采用什么样的设计原则来产生输出物呢? 运用各种OO设计原则,如GRASP(基于职责驱动设计(RDD)).GoF设计模式. 2).职责驱动设计 思考软件对象设计或大型软件的流行方式是考虑其 1).职责 2).角色 3).协作 3).职责 每个对象类都有职责.职责包含:行为.认知 我认为, 行为:方法.如:创建对象…
本文是辛向阳教授在<装饰>杂志(大家可以关注这个权威杂志的公众号,分享给大家)2015年第1期公开发表的学术论文,文章探讨的是交互设计研究 思路的转变.这一转变不仅适用于交互设计,也适用于服务设计.工业设计等相关门类的设计,反映的正是当下对于设计的认知走向深化的普遍现象. 摘 要:交互设计改变了设计中以物为对象的传统,直接把人类的行为做为设计对象.在交互行为过程里,器物包括软硬件只是实现行为的媒介.工具或手段.交互设计 师更多地关注经过设计的.合理的用户体验,而不是简单的产品物理属性.人.动作…
咱的OO结束辣! Part1: Unit4 Summary 本单元作业,我主要使用了适配器模式和访问者模式.总体上看,代码量和文件数量有所上升,但配合分包等措施后,文件结构清晰,各部分耦合度均较低.缺点就是一个简单操作要脱好几层套,显得有些臃肿. 由于三次作业基本上只有增加对新功能的支持,因此只分析第三次作业. Section1: 整体处理以及错误检测 总的来说,我将所有UML元素的类用MyUmlElement包裹,并添加属于自己的属性方便自己扩展.子类继承MyUmlElement并存入有关元素…
1.前言 开发者如何设计对象,可以采用如下三种方式: 编码:在编码的同时进行设计 绘图然后编码:绘制一些UML,然后转到如上编码方式,在集成开发环境中编码 只绘图,不编码:使用工具从图中生成一切 本章主要介绍在对象设计和编码前进行轻量级绘图 2.敏捷建模 敏捷建模的目标是减少常用图形 建模的目的是为了沟通和理解,不是为了构建文档 简单的敏捷建模方法包括使用白板笔.数码相机和打印机捕获“UML草图” 敏捷建模还包括: 与他人一同建模.并行创建若干模型 XP敏捷建模原则:一切从简.只为有效 敏捷建模…
第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得该Account 对象能够自动分配id. 给定一个List 如下: List list = new ArrayList(); list.add(new Account(10.00, “1234”)); list.add(new Account(15.00, “5678”)); list.add(ne…
市场上有着大量的开发和设计工具支持在Mac上安装使用,今天给大家强烈推荐一款Mac上的原型设计工具-Mockplus,原型工具在产品开发设计中是必不可少的,无论是现在非常火的小程序设计,还是网页设计,移动APP设计等.在设计前期,我们都需要对产品概念进行细致的原型设计,只有这样才能确保为后期开发节省时间. 一.初识界面 原型工具-Mockplus Mac版的界面非常简洁,我们分区域来了解一下: 顶部:顶部有主工具栏,其中包含了主菜单和最常用的快捷按钮: 中间:是你创作时的工作区.在工作区底部,你…
关于DDD的理论知识总结,可参考这篇文章. DDD社区官网上一篇关于聚合设计的几个原则的简单讨论: 文章地址:http://dddcommunity.org/library/vernon_2011/,该地址中包含了一篇关于介绍如何有效的设计聚合的一些原则,共3个pdf文件.该文章中指出了以下几个聚合设计的原则: 聚合是用来封装真正的不变性,而不是简单的将对象组合在一起: 聚合应尽量设计的小: 聚合之间的关联通过ID,而不是对象引用: 聚合内强一致性,聚合之间最终一致性: 上面这几条原则,作者通过…
.NET框架设计—常被忽视的C#设计技巧 阅读目录: 1.开篇介绍 2.尽量使用Lambda匿名函数调用代替反射调用(走进声明式设计) 3.被忽视的特性(Attribute)设计方式 4.扩展方法让你的对象如虎添翼(要学会使用扩展方法的设计思想) 5.别怕Static属性(很多人都怕Static在Service模式下的设计,其实要学会使用线程本地存储(ThreadStatic)) 6.泛型的协变与逆变(设计架构接口(Interface)时要时刻注意对象的协变.逆变) 7.使用泛型的类型推断(还在…
阅读目录: 1.开篇介绍 2.元数据缓存池模式(在运行时构造元数据缓存池) 2.1.元数据设计模式(抽象出对数据的描述数据) 2.2.借助Dynamic来改变IOC.AOP动态绑定的问题 2.3.元数据和模型绑定.元数据应该隐藏在Model背后.元数据与DSL的关系 3.链式配置Dynamic模式(爱不释手的思维习惯编程) 4.委托工厂模式(要优于常见的 工厂,概念更加准确,减少污染) 5.规则外挂(视委托为特殊的规则对象原型) 1]开篇介绍 通过上一篇的“.NET框架设计—常被忽视的C#设计技…
1. 你需要重视类的设计 c++同其他面向对象编程语言一样,定义了一个新的类就相当于定义了一个新的类型(type),因此作为一个c++开发人员,大量时间会被花费在扩张你的类型系统上面.这意味着你不仅仅是一个类的设计者同时是一个类型设计者.重载函数和运算符,控制内存分配和释放,定义对象初始化和终结,这些都是你手里的事情.因此你应该同语言设计者一样,它们将时间浪费在内建类型的设计上,你就应该对类的设计施以同样的关注. 2. 高效的类型的特征 设计好的类很具有挑战性,因为设计好的类型具有挑战性.好的类…