• 设计模式>原则


    设计模式原则

    1、开-闭原则(OCP  Open Close Principle)

    面向对象可利用设计(OOD)的第一块基石,就是“开-闭原则(Open-Closed principle,简称OCP),它的核心含意是:一个好的设计应该能够容纳新的功能需求的增加,但是增加的方式不是通过修改已有的模块(类),而是通过增加新的模块(类)来完成的

    2、单一职责原则(SRP Single ResponsibilityPrinciple

    单一职责原则:应该有且仅有一个原因引起类的变更。

    举例说明:你要修改用户名称,就调用changeUserName方法,你要修改家庭地址就调用changeHomeAddress,你要修改单位单户就调用changeOfficeTel方法,每个方法的职责就非常清晰,而不是使用changeUse(int type)方法,根据传递的type不同,分别修改姓名、地址、电话。

    3、里氏代换原则(LSP LiskovSubstitution Principle)

    就是子类可以代替父类出现的任何地方,所有引用基类的地方必须能透明地使用其子类的对象。在我们项目实施中就是每个子类对应了不同的业务含义,使用父类作为参数,传递不同的子类完成不同的业务逻辑,非常完美!在类中调用其他类是务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则

    4、依赖倒转原则(DIP DependenceInversion Principle)

       就是在我们编程的时候方法的参数类型,变量,对于其他具体类的依赖,我们尽量的使用抽象类。就是说尽量依赖于抽象,而不是依赖于实现。

    1. 每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备。

    2. 变量的显示类型尽量是接口或者是抽象类

    3. 任何类都不应该从具体类派生。

    5、接口隔离原则(ISP Interface Segregation Principle)

    就是一个类对另外一个类依赖的时候,应当是建立在最小的接口上面。对于接口隔离原则来说,有两种接口,一种是真正意义上面的“java 接口”Interface;另外一种是指一个类的方法的集合。“尽量使用多个专门的接口”,专门的接口指什么?就是指提供给多个模块的接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,所有的模块可以来访问。

    定制服务,单独为一个个体提供优良优良的服务

    6、组合/聚合复用原则(Composition/Aggregation Principle)

    就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的。

    其实这里最终要的地方就是区分“has-a”和“is-a”的区别。在“has-a”的关系中,两个类存在的是依赖的关系(在类A里面存在类B的的变量);在“Is-a”的关系中,可以提取这两个类的“共同代码”放在抽象类C中,然后A,B继承于C,这也是一种重构。相对于合成和聚合,继承的缺点在于:父类的方法全部暴露给子类。父类如果发生变化,子类也得发生变化。聚合的复用的时候就对另外的类依赖的比较的少。

    7、最少知识原则(迪米特原则)Least Knowledge Principle Low Of Demeter

    •对于成员,private,default,protected,public。往上面走,权限越小,依赖的耦合就越小。

    •类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成影响,也就是信息的隐藏出尽了软件的复用

  • 相关阅读:
    【数学】三分法
    【数学】【背包】【NOIP2018】P5020 货币系统
    【数学】【CF27E】 Number With The Given Amount Of Divisors
    【单调队列】【P3957】 跳房子
    【极值问题】【CF33C】 Wonderful Randomized Sum
    【DP】【CF31E】 TV Game
    【神仙题】【CF28D】 Don't fear, DravDe is kind
    【线段树】【CF19D】 Points
    【字符串】KMP字符串匹配
    【二维树状数组】【CF10D】 LCIS
  • 原文地址:https://www.cnblogs.com/xqzt/p/5637173.html
Copyright © 2020-2023  润新知