JavaScript设计模式经典-面向对象中六大原则 (3)

开放封闭原则,优点:程序的稳定性很高,容易变更的地方分离后更加容易维护。

// 单一职责原则 // 类 public class People { public void work() { System.out.println("work"); } public void eat() { System.out.println("eat"); } public void play() { System.out.println("play"); } } // 一个类, 三个职责 // 单一职责原则 public interface workInter { public void work(); } public interface eatInter { public void eat(); } public interface playInter { public void play(); } // 继承接口 public class People implements workInter, eatInter, playInter { public void work() { System.out.println("work"); } public void eat() { System.out.println("eat"); } public void play() { System.out.println("play"); } } public class Test { public static void main(String args[]) { People people = new People(); workInter worker = new People(); worker.work(); eatInter eater = new People(); eater.eat(); playInter player = new People(); player.play(); } }

里氏替换原则,所有引用基类的地方必须能透明地使用其子类的对象,子类必须完全实现父类的功能,凡是父类出现的地方,替换成子类也不会有问题。

里氏替换原则,我喜欢动物,那我一定喜欢狗,因狗是动物的子类;但是我说我喜欢狗,不能说我喜欢动物,因为我不喜欢其他小小小型动物。

子类必须完全实现父类的功能,举例没有实现的:

// 父类 public abstract class Father { // work public abstract void work(); } // 子类 public class Child extends Father { @Override public void work() { // 实现了这个方法,但功能不实现,什么都不做 } }

依赖倒置原则,理解为使用接口或者是抽象类。模块之间的依赖是通过抽象发生的,实现类之间不能直接的依赖的关系,实现类的依赖关系是通过接口或者抽象类产生的,接口或者抽象类依赖于实现类,实现类要依赖于接口或者是抽象类。

public class Da { private Dada dada = null; public Da(Dada dada) { this.da = da; } } public interface DaInter { public void setDa(Dada dada); } public class Da implements DaInter { private Dada dada = null; public void setDA(Dada dada) { this.da = da; } }

接口分离原则,如果一个类实现一个接口,但是这个接口有它不要的方法,就需要把这个接口拆分,把它需要的方法独立出来形成一个新的接口给这个类去实现。

单例模式:一个类只有一个实例,用一个变量去区别当前实例是否创建过

// 一个参数,一个变量 var da = function (name) { this.name = name; this.instance = null; } da.prototype.getName = function() { alert(this.name) } da.getInstance = fucntion(name) { if(!this.instance) { this.instance = da(name); } return this.instance; }

推荐阅读

1、你知道多少this,new,bind,call,apply?那我告诉你

2、为什么学习JavaScript设计模式,因为它是核心

3、一篇文章把你带入到JavaScript中的闭包与高级函数

4、大厂HR面试ES6中的深入浅出面试题知识点

5、一篇JavaScript技术栈带你了解继承和原型链

关于目前文章内容即涉及前端,PHP知识点,如果有兴趣即可关注,很荣幸,能被您发现,真是慧眼识英!也感谢您的关注,在未来的日子里,希望能够一直默默的支持我,我也会努力写出更多优秀的作品。我们一起成长,从零基础学编程,将 Web前端领域、数据结构与算法、网络原理等通俗易懂的呈现给小伙伴。分享 Web 前端相关的技术文章、工具资源、精选课程、热点资讯。

若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。

请点赞!因为你们的赞同/鼓励是我写作的最大动力! 欢迎关注达达的CSDN!

这是一个有质量,有态度的博客

7d927f18ebd05ea1d505a572393fbc87.jpg

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzpsz.html