- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计准则I:正确性和健壮性
正确性:每个项目全部要满足指定需求,然后一起满足全部应用程序需求,设计正确性通常是指充足性,实现正确性正式方法是依靠数学逻辑,非正式方法是判定设计是否满足所需功效,当进入具体设计阶段时,常常采取正式方法来判定正确性。
模块可是类或类包,包接口和类接口不一样,包不能被实例化,经过包来使用接口一个方法是利用包中指定对象来提供对应接口。
为了模块化特定应用程序,在高层需要创建包,在底层需要创建类
设计中用到两种类:领域类和非领域类,通常是从领域类开始类选择,然后扩展到非领域类,非领域类通常见于概括领域类。
健壮性:预防错误输入,预防开发错误;提升健壮性措施:检验输入、初始化、参数传输技术、检验参数是否违反约束方法、在类中捕捉参数、包装参数、强化意图。
设计准则II 灵活性、可重用性、高效性
灵活性:在设计时通常要考虑到未来改变;增加新功效要依据其上下文和应用范围
可重用性:一个方法相对于上下文环境越独立,其可重用性就越高;完全指定、避免无须要封装类耦合、让名字更具表示性、解释算法。
高效性:应用程序必需在指定时间内完成特定功效,一样,对内存容量也有一定要求
设计模式引言:
设计目标是:灵活性、健壮性、可重用性
设计标准:面向接口编程标准(面向接口编程而不是面向实现编程)、可变性封装、开—闭标准(对扩展开放,对修改关闭)、里氏替换标准(适适用于父类,但不一定适用子类)、组合/聚合标准(尽可能使用组合聚合/聚合,尽可能不使用继承);接口隔离标准(避免接口污染)、依靠倒转标准(高层低层依靠于抽象、细节依靠于抽象)、迪米特标准(不和陌生人说话)、单一标准
模式四个基础要素:问题(描述了应该在何时使用模式)、处理方案(描述了设计组成成份)、效果(描述了模式应用效果及使用模式应该权衡问题)、模式名称
设计模式分类:根据目标能够分为:创建型、结构型、行为型 根据范围能够分为:类模式、对象模式
模式和框架区分:
设计模式比框架更抽象
设计模式是比框架更小体系结构元素
框架比设计模式愈加特例化
创建型模式:
创建型模式包含抽象工厂模式、生成器模式、工厂模式、原型模式、单件模式
创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建、组合和表示它那些对象
一个类创建型模式使用继承改变被实例化类,而一个对象创建型模式将实例化委托给另一个对象。
伴随系统演化地越来越依靠于对象复合而不是类继承,创建型模式变得更为关键
创建型模式在什么被创建、谁创建它、它是怎样被创建和何时创建这些方面给很大灵活性
抽象工厂模式:
意图:提供一个创建一系列相关或相互依靠对象接口而不需要指定她们具体类
别名:KIT
适用性:
一个系统不应该依靠于产品类实比怎样被创建、组合和表示细节
这个系统产品有多出一个产品族,而系统只消费其中某一个族产品
同属于一个产品族产品是在一起使用
系统提供一个产品类库,全部产品以一样接口实现,从而使用户端不依靠于实现
参与者:抽象工厂角色(关键)、具体工厂(在用户端调用下创建实例)、抽象产品(所拥有共同接口)、具体产品
效果:1)分离了具体类
2)使得易于交换产品系列
3)有利于产品一致性
4)难以支持新种类产品
实现:1)将工厂作为一个单件 2)创建产品 3)定义可扩展工厂
相关:AbstractFactory类通常见工厂方法实现,一个具体工厂通常是一个单件
工厂方法模式:
意图:定义一个用于创建对象接口,让子类决定实例化哪个类。Factory Method使一个类实例化延迟到其子类
别名:虚结构器
适用性: 1)当一个类不知道它所必需创建对象类时候
2)当一个类期望由她子类来指定她所创建对象时候
效果: 1)多态性: 用户代码能够做到和特定应用无关,适适用于任何实体类
2)子类提供挂钩。基类为工厂方法提供缺省实现,子类能够重写新实现,也能够继承父类实现。-- 加一层间接性,增加了灵活性
3)封装性好,扩展性好,屏蔽产品类
4)需要Creator和对应子类作为factory method载体,假如应用模型确实需要creator和子类存在,则很好;不然话,需要增加一个类层次
单件模式:
意图:确保一个类有且只有一个实例,并提供一个访问它全局访问点
适用性:1)当类只能有一个实例而且用户能够从一个众所周知访问点访问它
当这个唯一实例应该是经过子类化可扩展,而且用户应该无需更改代码就能使用一个扩展类实例
优点:1)对唯一实例受控访问
2)缩小名空间
3)许可对操作和表示精化
4)比类操作更灵活
使用单件模式关键点:单件模式中实例结构器能够设置为protected 以许可子类派生; 单件模式只考虑到了对象创建管理,没有考虑对象销毁管理。
实现:确保一个唯一实例;创建单件类子类
//本质
原创力文档


文档评论(0)