码迷,mamicode.com
首页 > 其他好文 > 详细

OOP 面向对象 七大原则 (二)

时间:2019-06-15 20:20:52      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:cto   ali   extend   strong   --   ons   line   color   pst   

OOP 面向对象   七大原则 (二)

上一篇写到了前四个原则,这一篇继续~~

  接口隔离:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

  又是一句大白话~就是说接口尽量的要细化,接口中的方法也要尽量的少

  

/**
			 * oop 接口隔离原则实现
			 * @author gongliying
			 * @date 2019-06-15
			 */
			achieve(){
				class cosmetics {
					constructor(name) {
						this.name = name
					}
					color() {
						console.log(this.name, "颜色")
					}
					efficacy() {
						console.log(this.name, "滋润保湿")
					}
					size() {
						console.log(this.name, "粗细")
					}
				}
				class lipstick extends cosmetics {}
				class eyeliner extends cosmetics {}

				let kouhong = new lipstick("口红")
				kouhong.color()                              // 口红 颜色
				kouhong.efficacy()                // 口红 滋润保湿
				kouhong.size()                  // 口红 粗细

				let yanying = new eyeliner("眼影")
				yanying.color()	                             //眼影 颜色
				yanying.efficacy()                //眼影 滋润保湿
				yanying.size()                  // 眼影 粗细

			},

  我这样的确是都实现了,但是有没有感觉特别的emmmm冗余,而且逻辑上好像还是有点不对???   因为口红并没有粗细啊 眼影我也还没有听过有滋润保湿的啊,这样的话有一些方法在继承的时候就显得有点多余了,官方的话就是--客户端不应该依赖他不需要的接口,

  更改如下

    

/**
			 * oop 接口隔离原则实现
			 * @author gongliying
			 * @date 2019-06-15
			 */
			achieve(){
				class cosmetics {
					constructor(name) {
						this.name = name
					}
					color() {
						console.log(this.name, "颜色")
					}
				}
				class lipstick extends cosmetics {
					efficacy() {
						console.log(this.name, "滋润保湿")
					}
				}
				class eyeliner extends cosmetics {
					size() {
						console.log(this.name, "粗细")
					}
				}

				let kouhong = new lipstick("口红")
				kouhong.color()                 //口红 颜色                
				kouhong.efficacy()           //口红 滋润保湿

				let yanying = new eyeliner("眼影")
				yanying.color()	                     //眼影 颜色
				yanying.size()              //眼影 粗细

			},

  这样看起来是不是很好了,拥有了共同的方法,也有自己的方法,将接口细化,提高灵活性(官话),不依赖不需要的接口,这就是接口分离

 


  

OOP 面向对象 七大原则 (二)

标签:cto   ali   extend   strong   --   ons   line   color   pst   

原文地址:https://www.cnblogs.com/gongliying/p/11028674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!