课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件设计模式的学习与应用是大多数软件编程开发程序员都应该熟练掌握的一个编程知识,下面我们就通过案例分析来简单了解一下,软件设计原则都有哪些要求。
一、低耦合
耦合:评价一个系统中各个元素(类,模块,子系统)之间的依赖程度。以下是一些耦合关系的体现:
1.A具有一个B类型的属性(field);
2.A调用了B的方法;
3.A的方法包含对B的引用,比如方法参数为B,或返回类型为B;
4.A是B的子类;
5.B是一个接口,A实现了B接口;
以上这些耦合关系越多代表耦合程度越高。这些关系简单地说就是A对B的“感知”。
高耦合的缺点:一个类的修改会对其他类产生影响,容易产生遗漏和问题;系统难以维护和理解,复用性也很差。
降低耦合的一些方法:尽量减少对其他类的引用;提高方法和属性的访问权限;尽量使用组合/聚合原则来替代继承;多态也是一种降低耦合的方法,调用者只需要知道父类即可,不需要知道所有子类型,降低了类型耦合。
类间依赖是一种常见的耦合关系,尽量使用单向依赖,去除或弱化双向依赖,不使用循环依赖。
二、高内聚
内聚:是对元素职责的相关性和集中度的度量。
定义:即功能紧密相关的职责应该放在一个类里,并共同完成有限的功能。与单一职责和接口隔离原则是一致的。
优点:类的功能高内聚后复杂性就降低了,维护成本也就随之降低;同时提高了复用性。
低内聚的缺点:类要做许多不相关的工作,或需要完成大量的工作,导致类难以理解,难以复用,难以维护,经常被改动。
三、控制器(Controller)
定义:把接收或者处理系统事件消息的职责分配给一个类(这个类也可以是:子系统,或设备);
一个控制器应该处理一类事件,控制器要把完成的功能委托给业务层Service,它只负责协调和控制业务流程。
优点:控制器的核心是提供一个统一入口(比如外观模式),避免客户对系统内部进行耦合,很好的维护了职责边界。
四、多态
定义:当相关选择或行为随类型(类)变化而变化时,用多态操作为行为变化的类型分配职责。
优点:多态是面向对象设计的基本操作,它使未来的变化可以通过扩展新的子类解决,符合开闭原则。
五、纯虚构(PureFabrication)
定义:为了支持良好的内聚和低耦合以及复用性,将一组相关职责分配给一个虚构的类(这个类不是问题域中的概念)。比如数据库操作DAO,service,handler等。
优点:解耦,以及支持了高内聚和复用性。
六、间接(Indirection)
定义:配职责给中间对象(中介)以协调组件或服务之间的操作,使得它们不直接耦合。
优点:实现了类间的隔离和解耦。
有一种幽默的说法:“大多数设计问题都可以通过增加一层来解决,如果不行就再加一层。而性能问题则刚好相反,减少一层就能解决问题。”
七、受保护的变化(ProtectedVariations)
定义:找出预计有变化或不稳定的元素,为其创建稳定的“接口”而分配职责。
即考虑未来变化的扩展性,它是大多数程序设计的基础,是模式的基本动机之一,它使系统能够适应和隔离变化。与ETC原则一致,与面向对象的开闭原则相对应。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。