- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
軟件设计模式(总结归纳)
1. 工厂模式和抽象工厂模式
相同点:在两种工厂模式在被使用的时候都能产生具体的产品类,比直接创建对象更加灵活!
不同点:工厂模式只有一个抽象产品类,而抽象工厂模式可以有多个!工厂模式的具体工厂类只能创建一个具体类的实例,而抽象工厂模式则可以创建多个!
2.抽象工厂模式和建造者模式
相同点:都能生产出具体的产品类
不同点:抽象工厂模式是定义一个创建对象的接口,让子类决定实现哪一个类,抽象工厂使其子类延迟到其子类,其本身是没有状态的。建造者模式是将一个复杂对象的创建与他的表示分离,使同样的构造过程可以创建不同的表示,其是有状态的,比抽象工厂更加灵活(比较之下,抽象工厂处于更加具体的尺度上,而建造者模式处于更加宏观的尺度上)!
3.类适配器和对象适配器
对象适配器:不是通过继承的方式,而是通过对象组合的方式来进行处理的,我们只要学过OO的设计原则的都知道,组合相比继承是推荐的方式。
类适配器:通过继承的方式来实现,将旧系统的方法进行封装。对象适配器在进行适配器之间的转换过程中,无疑类适配器也能完成,但是依赖性会加大,并且随着适配要求的灵活性,可能通过继承膨胀的难以控制。
【一般来说类适配器的灵活性较差,对象适配器较灵活,是我们推荐的方式,可以通过依赖注入的方式,或者是配置的方式来做。类适配器需要继承自要适配的旧系统的类,无疑这不是一个好的办法。】
4.装饰,组合和责任链模式
装饰模式是一个链型的组织关系,而组合模式是一个集合的组织关系,也就是说组合模式必须有一个类是组合的容器,它包含了所有组合模式中的功能类,而装饰模式任何一个类都是链上的一个节点而已。但是这里装饰模式和组合模式没有优劣之分,只是适合的场景不一样,模式本身就是没有优劣之分,只是各自适合不同的场景。而 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使系统可以在不影响客户端的情况下动态的重新组织链和分配责任。
5状态和访问者模式
两者看上去都是某个类在不同条件下会有不同的行为表现。每个类的行为并非在自己本身上,而是寄托给了条件类了。不过这个条件在状态模式中用State类表示,在访问者模式中用visitor类表示。
两者的不同点是:
(1)状态模式中这些状态下的行为全部属于一个类,而访问者模式中每个条件下都会有不同类的行为;而且状态模式中的每个具体的状态类中还 可能包还对细小状态的判断。
(2)条件与需要此条件的类的接触方式不同,状态模式是将条件直接赋予需要的类,而访问者模式则是通过objectStructure来“访问”;
(3)最重要的应该是两者的目的不同:状态模式是要更好的执行一个类不同状态下的行为,而访问者模式则可以从ObjectStructure类中看出,它是一个结构固定的类,但这个结构下的算法是变化的。
6.外观模式和中介者模式
中介者模式解决的是对多个对象之间的通信问题,减少类之间的关联,外观模式解决的是子系统的接口复杂度问题。中介者模式中对象可以向中介者请求,外观模式中对象不会对外观有任何的协助请求。
7.模板模式和策略模式
这两个模式的相同之处在于它们可以使算法和上下文解耦,不同之处在于一个是使用继承来解决问题,另一个是基于委托。模板方法准备一个抽象类,让它定义了一个操作中算法的骨架,并可以实现部分逻辑,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。策略模式的用意是针对一组算法,将每一个算法封装到具有相同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
情境分析
上述情境中出现了几种模式?
1.学生和班导师的建立(工厂模式)。
2.班级是由学生和班导师构成(桥接模式)。
3.班委的成立(建造者模式)。
4.遍历班级学生信息(迭代器模式)。
5.班导师把通知交给班长(责任链模式)。
6.班委把通知传达给学生(观察者模式)。
1.学生和班导师的建立(工厂模式)
2. 学生和班导师构成班级(桥接模式)
3.班委的成立(建造者模式)
4. 遍历班级学生信息(迭代器模式)
5. 班导师把通知交给班长(责任链模式)
6.班委把通知传达给学生(观察者模式)
浅析23种软件设计模式
19、观察者模式:观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
20、状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。这个对
文档评论(0)