设计模式原则

最近重新回顾了下设计模式,这里归档总结下,方便以后可以看看。

设计模式总共有以下几个原则:

1、封装变化

       找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。

2、针对接口编程,而不是针对实现编程

      假设有一个抽象类Animal,有两个具体的实现(Dog与Cat)继承Animal。

image

“针对实现编程”的做法:Dog d = new Dog();d.bark();

“针对接口编程”的做法:Animal animal = new Dog();animal.makeSound();

或者:Animal animal = getAnimal();animal.makeSound();

3、多用组合,少用继承

  • 继承会使类无限膨大,可能会使类变得臃肿。
  • 子类可能会继承父类中那些无用甚至有害的方法。
  • 组合比继承更灵活,可以实现在执行中动态改变对象的功能。

4、为了交互对象之间的松耦合设计而努力。

5、类应该对修改关闭,对扩展开放

6、要依赖抽象,不要依赖具体类
       不要让“高层组件”依赖“低层组件”,而且,不管“高层组件”还是“低层组件”,两者都应该依赖于抽象。
避免违反该原则的几个方针:

  • 变量不可以持有具体类的引用。 如果使用new,就会持有具体类的引用,可以使用工厂来避开这种引用。
  • 不要让类派生自具体类。 如果派生自具体类,就会依赖具体类,可以派生自抽象或接口。
  • 不要覆盖基类中已实现的方法。 如果覆盖基类中已实现的方法,那么基类就不是一个真正适合被继承的类。基类中已实现的方法应该被所有子类所共享。

7、最少知识原则。

      当你设计一个系统时,不管是任何对象,你都要注意与它交互的类有哪些,并注意它和这些类是如何交互的,尽量避免过多的类耦合在一起,带来维护成本的上升。就任何对象而言,在该对象的方法内,我们只应该调用以下范围的方法

  • 该对象本身
  • 被当作方法的参数而传递进来的对象
  • 此方法所创建或实例化的任何对象
  • 对象的任何组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值