- 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、设计模式的分类
创建型模式
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:抽象工厂模式、生成器模式 、工厂方法模式 、原型模式 、单例模式。Abstract Factory是应对一系列对象的创建的问题,正如前面文章中举的例子,对于创建一个汽车对象来说,Abstract Factory模式更关注一系列的对象的创建,或者说是汽车类型中的各个部分,如:Wheel、Engine、Body等等类型的创建。换句话说关注点在这一系列对象上。Builder是应对一个复杂对象创建的问题,或者说是针对这个复杂对象中的子对象的创建的问题。以汽车的例子来说,我觉得比起Abstract Factory模式,Builder模式相对注重汽车类型本身以及其各个部分类型的创建。Builder模式要本文由论文联盟http://收集整理求这个复杂的类型中的各个子类型的结合部分相对稳定,用例子说明就是对于汽车来说,无论用什么配件组装,个个配件的组装方式都一样,有相对稳定的接口。对于这辆车你用什么牌子的Wheel、什么牌子的Engine可能变化会很大很频繁。
行为型设计模式
行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含11种设计模式。允许多个类处理同一个请求,而不必了解彼此的功能。他在类之间提供一个松散的耦合。类之间唯一的联系就是相互之间的传递请求。请求在类之间传递,直到其中一个类处理它为止。当一个对象向多个对象发送相同的信息时,就需要一种策略来确定由哪个对象对所发送的信息进行处理,而这样的处理对象也只能有一个。使用case语句或if语句的方法会给程序的维护带来很大难度,这就需要职责链模式来完成。职责链模式将发送对象和接收对象进行了解耦,以更好的应对变化。职责链模式将接收对象形成一个链,发送对象将信息发送给接收对象链中的一个对象,这时,信息就沿着对象链向下传送,直到有一个对象对信息进行处理。
结构型模式
结构型设计模式是从程序的结构上解决模块之间的耦合问题。包括以下七种模式:Adapte适配器模式:Adapter模式通过类的继承或者对象的组合侧重于转换已有的接口,类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。Bridge桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。减少因变化带来的代码的修改量。Composite组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得客户对单个对象和组合对象的使用具有一致性。从而解决了解决客户程序与复杂对象容器的解耦,即:通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少对象使用中的复杂度。Decorator装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。Decorator模式采用对象组合而非继承的手法,实现了在运行时动态的扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的“灵活性差”和“多子类衍生问题”。同时它很好地符合面向对象设计原则中“优先使用对象组合而非继承”和“开放-封闭”原则。Facade外观模式:为子系统中的一组接口提供一个一致的界面,简化接口。FlywEight享元模式:运用共享技术有效地支持大量细粒度的对象。面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作。Proxy代理模式:为其他对象提供一种代理以控制这个对象的访问。解决直接访问某些对
文档评论(0)