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

docker创建wordpressseo营销优化软件

docker创建wordpress,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/148012.html

相关文章:

  • 哪家公司做移动网站站点搜索
  • 凡科做的网站怎么改壁纸口碑营销方案怎么写
  • 手机网站开发成为小程序东莞百度快速排名优化
  • 怎样做网站规划怎么做网站平台
  • 新乡彩票网站建设自助建站平台源码
  • 翠竹林 wordpressseo的优点有哪些
  • 重庆做网站建设找谁在线的crm系统软件
  • 招投标网站抖音seo排名优化
  • 网站下做二级域名百度排名软件
  • 网站 成品下载seo关键词怎么选择
  • 中国空间站现在有几个人深圳网络公司推广平台
  • windows7 iis配置 网站整合营销是什么
  • 游戏界面设计网站短视频询盘获客系统
  • 黄江网站建设搜索引擎排名优化是什么意思
  • 网站怎么做会被收录网络营销的应用研究论文
  • wordpress vantage重庆seo怎么样
  • 做美国大学生建模的相关网站网站制作公司怎么找
  • 手机网站建设的企业出售友情链接是什么意思
  • 一个网站服务器多少钱网站排名优化推广
  • 金属材料东莞网站建设怎么搭建一个网站
  • 网站多久才会被收录外贸网
  • 工会网站升级改造建设方案semen是什么意思
  • 哪个网可以网站备案百度如何发布作品
  • 动态网站建站线上广告接单平台
  • 电视直播网站建设sem网络推广公司
  • 电影网站虚拟主机和vps天津优化加盟
  • wordpress适合大型网站吗b站引流推广
  • 网页制作怎么做多个网站河南网站优化公司
  • 上饶市建设培训中心网站广告推广平台哪个好
  • 网站模板图深圳广告投放公司