<第一章读后感>
1.OO基础:
抽象:将具体问题抽象出一个类,提供接口,不需要关心具体实现,就是一个父类.除了被继承外貌似没用。
封装:感觉同上。。。。
多态:一个父类的引用可以指向子类的对象。
继承:子类拥有父类的所有实例和方法。
2.策略模式:
个人理解: 所谓策略模式,是建立在封装、继承、多态和抽象的基础上的。 将行为或算法封装起来,使其之间可以相互替换,使用接口的用户无需关心具体的实现,使其独立于用户。
官方:定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
定义算法族:抽象出一个实现方法。
分别封装:由多个具体实现去继承抽象方法。
互相替换:通过多态,在运行时机制选择用户需要的对象、算法。
3.原则:
封装变化:对软件中可能需要经常变动的地方单独抽象出来进行封装。<如例子中鸭子的飞行能力以及叫声>
多用组合,少用继承:继承有诸多缺点,如:改变会牵一发动全身、代码在多个子类中复用、运行时的行为不易改变等。所谓组合就是将俩个类结合起来使用,相对独立。
针对接口编程,不针对实现编程:针对抽象(需要被继承的类<如实例中的设定鸭子行为的接口,设定鸭子叫声的接口>)编程,不针对具体的实现编程(不需要去关心具体鸭子是如何飞行的,是如何叫唤的)。
<第二章读后感>
1.观察者模式:
个人理解:观察者模式通常运用在一对多的关系上,通常一个类作为被观察者,其他一些作为观察者的类通过注册的方法,与被观察者建立连接。当被观察者(主题对象)发生改变的时候,去通知观察者做出相应的变化。
官方:定义了对象之间一对多的依赖,这样以来,当一个对象改变状态时,他的所有依赖者都会受到通知并自动更新。
2.新增原则:
为交互对象之间的松耦合而努力。
<第三章读后感>
1.装饰者模式:
个人理解:装饰者模式用于给已经创建的实例增添新的方法,通过与实例继承同一抽象类,拥有共同的创建方法,每个装饰者都有一个具体实例变量用来保存实例引用。
官方:动态的将责任附加到对象身上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
动态加责任:给对象额外增加方法。比继承更灵活。(就是需要的时候加,不需要的时候不加,继承做不到这一点)
2、新增原则:
对修改关闭,对拓展开放。 (开放封闭原则)
<第四章读后感>
1.工厂模式:
个人理解:工厂模式用于将对象的实例化进行封装,使用者无需关心子类实例如何创建,直接调用抽象接口,也就是工厂抽象类实例化子类就可以。
官方:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。此方法将类的实例化推迟到子类。
1.2 抽象工厂模式:
个人理解:感觉和工厂模式差不多,就是创建一系列的工厂模式,集中在一个抽象类中。
官方:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
2、新增原则:
依赖倒置,类应该依赖于抽象,不应该依赖于具体实现、具体类。
<第五章读后感>
1.单例模式:
个人理解:一个类,在程序运行期间,有且只有一个实例对象。
官方:确保一类只有一个实例对象,并提供全局访问点。