zoukankan      html  css  js  c++  java
  • 设计模式学习笔记

    对象是什么?
    --从概念层面讲,对象是某种拥有责任的抽象。
    --从规格层面讲,对象是一系列可以被其他对象使用的公共接口。
    --从语言实现层面讲,对象封装了代码和数据.

    三大机制:
    --封装,隐藏内部实现
    --继承,服用现有代码
    --多态,改写对象行为

    设计原则:

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

    2、针对接口编程,而不是针对实现编程。(针对接口编程的真正意思是:针对超类型(supertype)编程,关键就在于多态)

    举例说明:

    假设有一个抽象类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)、不要覆盖基类中已实现的方法。
    如果覆盖基类中已实现的方法,那么基类就不是一个真正适合被继承的类。基类中已实现的方法应该被所有子类所共享。


    设计模式:

    设计模式--在软件设计过程中某一类常见问题的一般性解决方案.
    面向对象设计模式-描叙了面向对象设计过程中,特定场景下,类与相互通信对象之间常见的组织关系.
  • 相关阅读:
    webpack入门
    vue 知识记录
    vue 服务端渲染案例
    nodemon的简单配置和使用
    vue 非父子组件通信-中转站
    position笔记
    koa 练习
    笔记
    git push代码时的'git did not exit cleanly (exit code 1)'问题解决
    块级元素的text-align对行内元素和果冻元素(inline-block)的作用
  • 原文地址:https://www.cnblogs.com/zhualike/p/1718962.html
Copyright © 2011-2022 走看看