《Head.First设计模式》的学习笔记(1)

1、慢一点,你理解的越多,需要记的就越少。

2、勤做练习,自己记笔记。

3、上床睡觉之前不要再看别的书了,或者至少不再看其他有难度的东西。

4、要喝水,而且要多喝点水。

5、大声说出来。

6、听听你的大脑怎么说。

7、要有点感觉!

8、设计一点东西!

书中列举的设计原则:

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、多用组合,少用继承

原因:

       a、继承会使类无限膨大,可能会使类变得臃肿。

       b、子类可能会继承父类中那些无用甚至有害的方法。

       c、组合比继承更灵活,可以实现在执行中动态改变对象的功能。

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

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

6、要依赖抽象,不要依赖具体类
解释:不要让“高层组件”依赖“低层组件”,而且,不管“高层组件”还是“低层组件”,两者都应该依赖于抽象。
避免违反该原则的几个方针:
1)、变量不可以持有具体类的引用。
如果使用new,就会持有具体类的引用,可以使用工厂来避开这种引用。
2)、不要让类派生自具体类。
如果派生自具体类,就会依赖具体类,可以派生自抽象或接口。
3)、不要覆盖基类中已实现的方法。
如果覆盖基类中已实现的方法,那么基类就不是一个真正适合被继承的类。基类中已实现的方法应该被所有子类所共享。
7、最少知识原则。
解释:当你设计一个系统时,不管是任何对象,你都要注意与它交互的类有哪些,并注意它和这些类是如何交互的,尽量避免过多的类耦合在一起,带来维护成本的上升。
这个原则推荐的一些方针:
就任何对象而言,在该对象的方法内,我们只应该调用一下范围的方法
1)、该对象本身
2)、被当作方法的参数而传递进来的对象
3)、此方法所创建或实例化的任何对象
4)、对象的任何组件。
用代码加以说明:

public float  getTemp()
 {
     //  没有采用该原则
     Thermoment thermoment = station.getThermoment();
     return thermoment.getTemperature();
 }
 
 public float getTemp()
 {
    // 采用该原则
    return station.getTemperature();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值