面向对象设计模式的原则与分类

单一职责原则,以前在写代码的时候,就直接上一个类拥有了多个不相关的操作,学了单一职责原则,就知道了每个类的功能应该单一,因为在使用的时候,我们是通过相应类的对象来调用这些方法的,遵循单一职责原则后,使用时就相对简单了。然后是开闭原则,像简单工厂模式的switch语句就不遵守这个规则,于是后来又学了抽象工厂模式,将每一种情况都另外建一个类,再建立一个工厂类去创建它。这样就有效的解决了开放封闭原则。“里氏代换”原则,里氏代换原则,先开始不是特别理解为什么叫里氏代换原则,因为这样的名称有点晦涩难懂,可能就是发明这个原则的人名吧!在一个可以接受基类对象的地方必然可以接受子类对象,开始想我看到的所有模式的代码,发现大多数面向接口设计的模式,都是先建立一个抽象类,抽象类不实现自身的方法,而让子类实现,不同的子类内部的实现不同,创建时,我们让父类引用,创建的相应的子对象,这样就实现了在接受基类对象的地方必然可以接受一个子类对象,“依赖倒转”原则,要面对抽象层编程,而不要针对具体类编程。这里的抽象层指的是一开始创建的虚基类,我们所面向的抽象层也是虚基类中的虚接口。我认为这样可以让我们有规则可循的创建满足自己需要的类。“接口隔离原则”用多个专门的接口来取代一个统一的接口,感觉这个规则有点像单一职责原则,只是一个针对类,一个针对对象,分离之后,我们在使用相应的接口的时候就更明确了。“合成复用原则”在系统中应该尽量使用组合和聚合的关联关系,尽量少使用甚至不使用继承关系。我感觉可能使用继承的开销往往比使用组合的开销要大,使用继承有时不能很好的表达类之间的逻辑关系。“迪米特法则”一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当直接的相互作用,而是通过引入一个第三者发生间接交互“我们之间不直接交互,而是通过第三者间接交互,最好的体现就是代理模式了,我认为这个规则一是为了安全考虑,还有就是解耦和,让两个类之间的联系程度尽量的低。

 

结构模式主要用于创建对象,结构模式主要用于处理类或对象的组合,行为模式主要用于描述对类或对象怎样交互和怎样分配职责。

另一种分类方法是类模式处理类与子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。对象模式处理对象间的关系,这些关系在运行时刻变化,是动态的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值