当前位置: 首页 > wzjs >正文

北京网站建设飞沐网站seo优化有哪些方面

北京网站建设飞沐,网站seo优化有哪些方面,酒店网站建设流程图,网红营销的优势在哪里Java设计模式 Java设计模式主要原则是开闭原则,即对扩展开放,对修改关闭。由此衍生出5大原则:单一职责原则,里式替换原则,迪米特原则,接口隔离职责,依赖倒置原则。1、开闭原则 开闭原则&#x…

Java设计模式

Java设计模式主要原则是开闭原则,即对扩展开放,对修改关闭。由此衍生出5大原则:单一职责原则,里式替换原则,迪米特原则,接口隔离职责,依赖倒置原则。

1、开闭原则

开闭原则:对扩展开放,对修改关闭。一个接口,特别是底层接口或者抽象类,
从诞生后起,要尽可能少改动它,因为一旦改动,所有引用它的类或者接口都会收到影响。需要做回归测试,所有软件也需要重新测试。这会带来巨大的代价。如果知识做扩展,除了扩展新增功能需要做测试外,接口原有实现都不用改动。

单一职责原则

接口或者抽象类职责要单一,不要是很多功能的复合体。比如我有一个用户接口UserInfo,它既负责维护用户属性,也负责定义用户行为。这就违背了单一职责原则,接口的实现类那必然实现用户所有功能,后面扩展行为,或者属性势必会影响整个接口,影响面也会更大。

里式替换

简单说就是使用任意子类可以替换父类,程序依然成立,即原有输入和输出类型依然不变。

迪米特

Java class要尽可能暴露少的method,field给外部。即多使用private protected 等关键字约束访问权限。同时在编写程序时 class只和直接接触的对象有耦合,对于不直接接触的对象不要产生耦合。示例如下
场景:老师让那个体育委员清点女生人数

示例一:女生是teacher的参数

public class Teacher {
//老师对学生发布命令,清一下女生
public void commond(GroupLeader groupLeader){
List listGirls = new ArrayList();
//初始化女生
for(int i=0;i<20;i++){
listGirls.add(new Girl());
}
//告诉体育委员开始执行清查任务
groupLeader.countGirls(listGirls);
}
}

示例二:女生作为体育委员的参数

public class Client {
public static void main(String[] args) {
//产生一个女生群体
List<Girl> listGirls = new ArrayList<Girl>();
//初始化女生
for(int i=0;i<20;i++){
listGirls.add(new Girl());
}
Teacher teacher= new Teacher();
//老师发布命令
teacher.commond(new GroupLeader(listGirls));
}
}

通过示例一和二的比较,明显可以发现示例二有更好的扩展性,老师和女生无直接关系,示例二从老师的角度只知道GroupLeader类,而不需要定义Girl,不管Girl有任何变动,只需要对GroupLeader做相应调整,而teacher不用动。降低耦合,增强扩展性。

接口隔离职责

接口隔离可以看作单一性原则的再度细化,比如上面的UserInfo接口,被拆分为用户属性接口和用户行为接口,用户行为接口kennel会定义很多行为,打游戏,开车,打球,逛街。等等,这些都属于用户行为,但是过多的行为可以再次划分,让用户属性和各种独特行为结合变成特定的人,这样就实现接口隔离。示例待添加。

依赖倒置

先说明依赖正置:如下,张三会开车,因为张三有奔驰,所以方法直接传入奔驰车。

public class Client {
public static void main(String[] args) {
Driver zhangSan = new Driver();
Benz benz = new Benz();
//张三开奔驰车
zhangSan.drive(benz);
}
}

后面章三买了辆宝马,但是宝马和奔驰没关系,因此张三必须新写一个方法来实现开宝马。这种直接传入实现类的方法没有扩展性。如果方法参数是car,那么不管张三买几辆车,都能动态传入。即面向接口编程,也就是依赖倒置。
依赖倒置做到极限就是控制反转,如Spring,所有类的创建都是用一套接口,大大降低了耦合性,同时也带来了对象创建的成本开销。但由于是启动创建,因此损耗的是启动性能,而非运行性能。

http://www.dtcms.com/wzjs/343027.html

相关文章:

  • 网站建设模板怎么做最受欢迎的十大培训课程
  • 建设房产网站徐州seo推广
  • 品牌网站建设 磐石网络的确好谷歌官网下载app
  • 广州市网站建设公司软件开发公司排名
  • wordpress onepressseo关键词优化外包
  • 软件项目管理pdf外贸推广优化公司
  • 一个网站做数据维护需要多久网站怎么快速被百度收录
  • 网站都是h5响应式上海app网络推广公司电话
  • wordpress 个人soho广州谷歌seo公司
  • 做电影网站的服务器需要多大广告联盟app下载赚钱
  • 登陆网站密码不保存怎么做网络销售有哪些
  • frontpage怎么做网站网站多久被百度收录
  • 天津市建设 银行网站磁力引擎
  • 企业网站开发 宁波网络公司互联网公司排名
  • qq创号申请注册网站网络营销推广方法
  • 网站内容发布平台源码国内b2b十大平台排名
  • 浅谈京东企业的电子商务网站建设seo是啥意思
  • 网站建设合同注意网页版
  • 小米的企业网站建设思路市场营销毕业论文
  • 广告设计公司经营范围有哪些seo查询优化
  • 响应式网站cms今日小说搜索百度风云榜
  • 南通网站建设排名公司哪家好大数据比较好的培训机构
  • 绥化北京网站建设天津关键词优化平台
  • 网站制作软件都是什么软件韩国搜索引擎排名
  • 35互联做网站垃圾新闻稿范文
  • 新乡网站建设哪家公司好百度网盘网址是多少
  • 网站主机是服务器吗北京官网优化公司
  • 长春专业网站建设价格seo优化推荐
  • wordpress怎么配置七牛cdn加速seo优
  • wordpress 分类 权限seo薪酬水平