zoukankan      html  css  js  c++  java
  • java模式设计原则

    设计模式应当遵循的七大原则

    1.开闭原则(Open Close Principle)

    定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

    2.里氏代换原则(Liskov Substitution Principle)

    里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。

    1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

    2.子类中可以增加自己特有的方法。

    3.当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

    4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

    3.依赖倒转原则(Dependence Inversion Principle)

    定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,

              不要针对实现编程

    4.接口隔离原则(Interface Segregation Principle)

       接口隔离原则的含义是:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少

    1. 接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。

    2. 为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。

    3. 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情

    4.     组合/聚合复用原则

    就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的
    该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。
          其实这里最终要的地方就是区分“has-a”和“is-a”的区别。相对于合成和聚合,
    继承的缺点在于:父类的方法全部暴露给子类。父类如果发生变化,子类也得发生变化。聚合的复用的时候就对另外的类依赖的比较的少。。
    合成/聚合复用
    ① 优点:
    新对象存取成分对象的唯一方法是通过成分对象的接口;
    这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的;

    这种复用支持包装;
    这种复用所需的依赖较少;
    每一个新的类可以将焦点集中在一个任务上;
    这种复用可以在运行时动态进行,新对象可以使用合成/聚合关系将新的责任委派到合适的对象。
    ② 缺点:
    通过这种方式复用建造的系统会有较多的对象需要管理。

    继承复用
    ① 优点:
      新的实现较为容易,因为基类的大部分功能可以通过继承关系自动进入派生类;
      修改或扩展继承而来的实现较为容易。
    ② 缺点:
      继承复用破坏包装,因为继承将基类的实现细节暴露给派生类,这种复用也称为白箱复用;
      如果基类的实现发生改变,那么派生类的实现也不得不发生改变;
      从基类继承而来的实现是静态的,不可能在运行时发生改变,不够灵活。

    6.迪米特法则(Law Of Demeter)

           迪米特法则其根本思想,是强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的 类造成影响,也就是说,信息的隐藏促

           进了软件的复用。

    7.单一职责原则(Single Responsibility Principle)

             定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,应该仅有一个引起它变化的原因

  • 相关阅读:
    angularJS 作用域
    html5的一些表单属性。
    UIScrollView 原理详解
    远程实时调试手机上的Web页面
    Web移动应用调试工具——Weinre
    WebView注入Java对象注意事项
    Android中Webview使用自定义的javascript进行回调
    [Android] Web Console: Uncaught TypeError: Object [object Object] has no method 'xxx'
    android 中 webview 怎么用 localStorage?
    iPhone 6 屏幕揭秘
  • 原文地址:https://www.cnblogs.com/elite-2012/p/3461604.html
Copyright © 2011-2022 走看看