首页 > 其他分享 >设计模式之一些其他知识

设计模式之一些其他知识

时间:2023-03-17 16:32:41浏览次数:25  
标签:原则 组合 对象 知识 接口 -- 其他 耦合 设计模式


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



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



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



 



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



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



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



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



 



2 设计模式六大原则



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



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



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



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



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



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



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





 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 

标签:原则,组合,对象,知识,接口,--,其他,耦合,设计模式
From: https://blog.51cto.com/u_13854513/6127521

相关文章

  • 设计模式之状态模式
    前提:含环境类、状态接口、具体状态类。将每个状态实现为一个对象即行为。(ps:没想到更啥,先更着以前写的状态模式吧。。。。) 1状态接口:publicinterfac......
  • 设计模式之适配器模式
    前提:适配器模式有三种-类、对象、接口适配器。(暂时没想到更啥,先更着以前写的适配器模式吧。。。)使用场景:假设手上有一个ps2插头的设备,但主机对外是usb,这时候需要弄个......
  • html5知识点:CSS盒模型
    一、 CSS层叠在前端程序员对CSS编写的过程中,CSS选择器的作用是用来选中某个元素,并对当前的元素进行样式上的渲染,那么每一个选择器都有属于自己的一些解析规则。那我们今天......
  • linux知识点
    查询字符信息在文件夹内grep"legioncross_server_ip"*docker导出日志文件dockerexec-itlegioncross-3002jstack-l10>legioncross-3002.log压缩tarzcvfhttpda......
  • c++prime 6-9知识点摘取
      initializer_list<T>类:https://blog.csdn.net/qunsorber/article/details/122860985     https://blog.csdn.net/qq_36546177/article/details/108763448......
  • 设计模式——享元模式
    个人理解:抽离公共方法所需的属性进行共享;不需要的字段抽离到外面进行管理。1、享元模式享元模式(FlyweightPattern)主要用于减少创建对象的数量,以减少内存占用和提高性能......
  • 设计模式5——模板方法模式
    1、定义模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。2、核心在抽象父类中封装子类的算法框架,它的init方法可作为一个算法的模板,指导子......
  • spring小知识点--Bean的初始化方法和销毁方法该如何设置
    1.含义如果仅仅看属性名称的话,那就是指AbstractBeanDefinition类中initMehtodName和destroyMethodName,但我们这里想说的是有哪些初始化以及销毁方式;2.设置方式2.1@......
  • 设计模式(二十三)----行为型模式之中介者模式
    1概述一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下......
  • django+drf的常用知识_____request
    登录成功,将token封装好返回给前端,前端再放到locallsession里永久化存储。导航守卫拿到token后就进行第一层守卫防止没登录用户通过。再由拦截器进行校验。这个请求头'Autho......