0
点赞
收藏
分享

微信扫一扫

设计模式之一些其他知识


1 组合和继承有何区别?(暂时没想到更啥,先更着之前写的东西吧。。。)



- 继承:is-a关系。实现对父类的扩展,但是继承的



-- 缺点:父类细节对子类可见;高耦合



 



- 组合:has-a关系。把组合类的对象加入到当前类中作为一个成员变量。



-- 优点:通过所包含的对象去调用那个类的方法,即所包含对象内部细节对当前对象不可见;低耦合,修改被包含类仅需要修改那个类(不影响当前类);运行时可动态改变被包含类(如通过set设置另一个被包含类)



-- 缺点:易产生过多对象;需要为被组合的对象定义接口



总结:相对而言,组合能够隐藏细节、降低耦合性、动态改变组合对象。所以优先使用组合。



 



2 设计模式六大原则



1 单一职责原则:功能单一,如数据库、excel处理是两种形式,不能写在一起,需拆分。



2 开闭原则:对扩展开放,对修改关闭。尽量在不修改原有代码下扩展。如抽象层实现,仅需对具体实现层修改即可。如组合。



3 里氏替换原则:可以接受父类,那也能接受其子类(上转型),反之不行。是开闭原则基础。



4 接口隔离原则:为子类提供尽可能小的接口,拆分大的接口。每个接口都是单一职责。



5 依赖倒置原则:针对接口编程,传递参数时尽可能引用高层抽象层类。并通过依赖注入方式注入类。如Aminal dog = new Dog();



6 迪米特法则:尽可能降低耦合,降低成员访问权限。



总结:开闭是目标、里氏是基础、依赖是手段。单开里接依迪





 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 

举报

相关推荐

0 条评论