博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式(一)
阅读量:5222 次
发布时间:2019-06-14

本文共 763 字,大约阅读时间需要 2 分钟。

设计模式(一)

1.开闭原则:软件实体应当对外扩展开放,对修改关闭(修改程序是:增加新功能,不准修改原来的程序代码,只能增加新的代码)

2.里氏替换原则:所有引用基类的地方必须能透明的使用其子类的对象;(不能修改父类,我们可以抽象出来一个类 ,让其他物体都继承它)

在面向对象中,继承有很多优点:

       1)代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;

       2)提高代码的重用性;

       3)子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞”是说子拥有父的“种”,“世界上没有两片完全相同的叶子”是指明子与父的不同;

       4)提高代码的可扩展性,实现父类的方法就可以“为所欲为”了,君不见很多开源框架的扩展接口都是通过继承父类来完成的;

       5)提高产品或项目的开放性。

3.依赖倒转原则:依赖倒转原则就是要求客户端依赖于抽象耦合。表述是:抽象应该不依赖于细节,细节应该依赖于抽象;另一种表述:要针对接口编程,不要依赖实现编程。抽象耦合是依赖倒转原则的关键,历史替换原则是依赖倒转原则的基础(历史替换下次讲到)

       1)依赖:A use a B ,那么A对B产生了依赖

      2)依赖关系的种类:

            *:零耦合关系:如果两个类中没有耦合关系,称为零耦合

             

 

                    *:具体耦合关系:发生在两个具体的类(可实例化)之间,由一个类对另一个类的直接引用造成的;

         

           *:抽象耦合关系:抽象耦合关系发生在一个具体类和一个抽象类(接口)之间,使两个必须发生关系的类之间存在最大的灵活性

            

 

 在实际编程中,我们一定要做到一下3点:

  • 低层模块尽量都要有抽象类或接口,或者两者都有。
  • 变量的声明类型尽量是抽象类或接口。
  • 使用继承时遵循里氏替换原则。

 

转载于:https://www.cnblogs.com/mengmengxia/p/6822020.html

你可能感兴趣的文章
比callback更简洁的链式执行promise
查看>>
android permission
查看>>
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>
[BSGS][哈希]luogu P3846 可爱的质数
查看>>
Python 第四十五章 MySQL 内容回顾
查看>>
iostat参数说明
查看>>
Python-Mac 安装 PyQt4
查看>>
实验2-2
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
session token两种登陆方式
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>
20190422 T-SQL 触发器
查看>>