《设计模式解析第二版》读书笔记:一

来源:互联网 发布:光环大数据坑吗 编辑:程序博客网 时间:2024/06/10 16:20
对象是一个有责任的实体,应该对自己负责,而且清楚地定义责任,而不是一些数据和方法的简单堆积。要学会用对象的职责而不是其结构来考虑问题。这也是领域驱动开发的核心。

对象之间的三种关系:泛化、依赖、关联(聚合、组合)
泛化表现子类和父类之间是is a的关系。
依赖表现use a的关系,通常表现为一个对象是另一个对象的某个方法的参数或者局部变量。
关联表现has a的关系,一个对象是零一个对象的成员变量,或为指针,或为引用
聚合表现为一种弱关联。对象之间是一种聚集关系,各自的生命周期互相独立。
组合表现为一种强关联,一个对象的生命周期由另外一个对象控制,而且是另外一个对象的一部分,将二者分开则没有意义。

在真正的面向对象语言中,万事万物皆为对象,包括内置的数据类型。例如x+y,等同于x.add(y)。
转移责任是面向对象设计的基本原则之一。

一: 将对象按职责建模,而不是按语义或者实体建模
二: 封装变化点为一个对象
三: 优先考虑对象包含和依赖,其次考虑继承
四: 如果需要的话,面向接口编程,而非面向实现编程

Facade模式和Adapter模式区别:Facade模式简化接口,而Adapter模式则是转化接口。

面向对象涵盖三种视角:概念视角、规约视角、实现视角
对象必须完成哪些职责(概念视角),我们能够如何调用它们(规约视角),实现这些对象的时候,要让方法提供足够的信息,保证实现正确并解耦(实现视角)。

领域驱动设计,从业务领域和对象职责来指导建模。设计模式通常被解读成预先设计,它提倡从问题领域的主要概念入手,逐步细化。极限编程的核心是循序渐进的开发,测试驱动开发。这三者之间相辅相成,个人认为应该按照以下顺序进行:领域驱动开发->设计模式->测试驱动开发

策略模式:让使用算法的类包含(聚合)一个抽象的算法类,这个抽象类有一个抽象接口指定如何调用算法,每个派生类按需要实现算法。

太多的设计人员喜欢对一开始提出的方案从一而终,这是不可取的。软件开发中,唯一不变的就是变化。经常回头看看,原先的设计中的不合理的地方,而不是抱着已有的不好的设计不放。当然,一开始就过度设计也是不提倡的。

传统的面向对象设计方法中,一般是设计人员研究问题领域,找出其中的名词,然后创建对象来标示这些名词,然后寻找与这些名词相关的动词,作为对象的方法。这种以名词和动词为中心的设计方法通常会生成超出我们意愿的庞大的类层次。在创建对象时,使用共性和可变性分析作为主导思想,会优于仅仅关注名词和动词要优美的多。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 美团客户给差评怎么办 淘宝卖家评价差怎么办 淘宝卖家发货未揽收怎么办 周不过5我超过了怎么办 淘宝申请退款后卖家不确认怎么办 淘宝直通车b类扣12分怎么办 淘宝店铺被买家投诉怎么办 淘宝店铺遭买家投诉怎么办 淘宝店铺被买家恶意投诉怎么办 苹果手机无法识别指纹怎么办 淘宝店铺虚假交易违规怎么办 斗鱼直播太卡怎么办 神笔添加视频尺码不符合怎么办 闲鱼卖家单号填错了怎么办 户户通没有信号强度怎么办 全民k歌qq登不上怎么办 手机直播没电了怎么办 淘宝退货卖家拒收怎么办 充的会员卡店家关门了怎么办 淘宝手机号码被注册了怎么办 淘宝不支持七天无理由退货怎么办 微信视频横屏怎么办 房子里潮气太重怎么办 淘宝不小心注销了怎么办 淘宝号不小心注销了怎么办 xp网络驱动没了怎么办 淘宝卖家客服态度差怎么办 怀孕吃辣椒喉咙好痛怎么办 淘宝店铺建议不要提交认证怎么办 淘宝买东西商家不退款怎么办 淘宝买东西商家不发货怎么办 在微信上买东西被骗了怎么办 新浪微博自动关注人怎么办 搜淘宝找不到关键词和店铺怎么办 小超市开在一起竞争太大怎么办 淘宝店铺被投诉盗图怎么办 充电宝ic坏了怎么办 淘宝店宝贝权重下降怎么办 淘宝卖家评分低怎么办 淘宝买东西客服不理人怎么办 支付宝本次交易嫌疑违规怎么办