软件设计六大原则

一.开闭原则

        解释:对扩展开发,对修改关闭。即要对程序进行扩展时,不能去修改原有代码。

        使用方式:使用接口或抽象类,因为其灵活性好,可扩展性强,当需要扩展时,只需要对其进行实现,并不用修改原有代码。

        好处:扩展性好,易于维护和升级。

二.里氏代换原则

解释:任何基类可以出现的地方,子类也一定可以出现。

使用方式:除添加新的方法外,尽量不去重写父类的方法。不然当程序比较复杂,使用多态可能会有问题。

三.依赖倒转原则

解释:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。就是对抽象进行编程,不对实现进行编程。

简单来说就是抽象类,接口和类中的成员变量尽量都是接口,不是具体类。这样便于扩展。就是开闭原则。

好处:降低耦合,高扩展性。

四.接口隔离原则

        客户端不因该被迫依赖于它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口上。

        解释:显而易见,这个原则就是当子类依赖于父类的某个方法,但父类中其他的方法子类又不需要时,此时就不能再继承了,而是需要将依赖的那个方法分离出来,单独写成一个接口来实现。

        :有一个接口A,其有两个方法,此时一个类B只需要A中x()这歌方法,如果直接继承,则也需要实现其Y()方法,此时可以将X(),Y()两个方法分别写成两个接口,哪个类需要哪个方法就实现哪个接口。

interface A{

    X();
    Y();

}

        好处:1.降低耦合度,子类与原父类不在紧密的关联。

                   2.高扩展性,当另一个类也需要某个方法时,可以选择其需要的接口来实现。而不用拥有其不需要的方法。

                   3.条理清晰。

五.迪米特法则

        又叫最少知识原则,只和直接朋友交谈,不和陌生人说话。

        解释:如果两个软件实体无需直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发调用。

        朋友:当前对象本身,当前对象的成员对象,当前对象所创建的对象,当前对象的方法参数等。这些对象同当前对象存在关联,聚合或组合关系,可以直接访问这些对象的方法。

此原则就是代理。

        :甲方A找一个外包公司设计软件,他是直接找公司B,公司再将需求告诉程序员C,而不是直接找程序员C。

此时朋友就是程序员与公司,陌生人是甲方。

//甲方
class A{
    A(){}
}
//公司(产品经理)
class B{
    A a;
    C c;
    b(){}

}
//程序员
class C{
    C(){}
}

        好处:降低耦合度。降低了A类与C类之间的耦合度。

六.合成复用原则

解释:尽量先使用组合或者聚合等关系来实现,其次才考虑使用继承关系来实现。

:汽车按动力可分为“电动”与“汽油”等,按照颜色可分为“黑”,“白”等。不同的动力和颜色价格不同。

这里使用的是聚合,比继承条例更加清晰。

好处:1.维持了类的封装性。继承的话子类能看到父类中的细节,组合或聚合不会.

           2.对象间的耦合度低。父类的改变都会导致子类的实现发生变化,不利于子类维护。

            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript设计模式通常包括以下六大原则: 1. 单一职责原则(Single Responsibility Principle,SRP):一个对象(函数、类等)只应负责一个单一的职责或功能。这使得对象的设计更加简单、清晰,并提高了代码的可维护性和可复用性。 2. 开放封闭原则(Open-Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即通过扩展已有的代码来实现新的功能,而不是直接修改已有的代码。这样可以保持代码的稳定性和可靠性。 3. 里氏替换原则(Liskov Substitution Principle,LSP):子类对象应该能够替换父类对象,而程序的行为不会发生变化。即在使用父类对象的地方,可以替换成子类对象而不会影响程序的正确性。 4. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块(抽象)不应该依赖于底层模块(具体),而是应该依赖于抽象。具体来说,将抽象与具体的实现分离,通过依赖注入的方式来实现高层模块对底层模块的使用。 5. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该强迫依赖它不需要的接口。接口应该小而精简,不应该包含多余的方法。这样可以避免接口的臃肿和不必要的依赖。 6. 迪米特原则(Law of Demeter,LoD):一个对象应该对其他对象有尽可能少的了解,只与其直接的朋友交流。换句话说,应该尽量减少对象之间的耦合关系,降低代码的复杂性和维护成本。 这些设计原则是指导软件设计的准则,它们可以帮助我们编写出高质量、易维护并且可扩展的JavaScript代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值