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

有专门下载地图做方案的网站吗宁波seo网络推广优质团队

有专门下载地图做方案的网站吗,宁波seo网络推广优质团队,成都网站建设公司盈利吗,hbuilder做网站依赖倒置引出 依赖倒置 定义:高层模块不应该依赖低层模块,二者都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。面向接口编程而不是面向实现编程。 通过抽象使用抽象类、接口让各个类or模块之间独立不影响,实现…

依赖倒置引出

 


 依赖倒置

定义:高层模块不应该依赖低层模块,二者都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。面向接口编程而不是面向实现编程。

通过抽象使用抽象类、接口让各个类or模块之间独立不影响,实现模块之间的松耦合,降低模块之间的耦合性。

注意:每个类都尽量实现接口or继承抽象类;尽量避免从具体的类派生;尽量不要覆盖基类方法。

优点:减少类之间耦合性;提高系统稳定性、可维护性、代码可读性。


依赖倒置案例

public class Customer {public void buyTV() {System.out.println("买电视机");}public void buyPhone() {System.out.println("买手机");}
}
//试问?如果需要买其他商品呢,就要在这个具体Customer类中去加方法,可维护性低。

依赖倒置——接口注入

//顾客类
public class Customer {public void buy(IGood iGood) {iGood.buy();}
}//商品的接口
public interface IGood{void  buy();//抽象的buy方法
}//电视机商品
public class TVGood implements IGood {@Overridepublic void buy() {System.out.println("买电视机");}
}
//手机商品
public class PhoneGood implements IGood {@Overridepublic void buy() {System.out.println("买手机");}
}public class Main {public static void main(String[] args) {Customer customer = new Customer();customer.buy(new TVGood());}
}

依赖倒置——构造器注入

public class Customer {private IGood iGood;public Customer(IGood iGood) {this.iGood = iGood;}public void buy() {this.iGood.buy();}
}public class Main {public static void main(String[] args) {Customer customer = new Customer(new TVGood());customer.buy();}
}

依赖倒置——Setter注入(推荐)

public class Customer {private IGood iGood;public void setiGood(IGood iGood) {this.iGood = iGood;}public void buy() {this.iGood.buy();}
}

合成复用原则引出

 

 


合成复用原则

定义:想要达到软件复用的目的,尽量使用对象组合/聚合,而不是继承关系;

组合:A类中包含了B类的引用,当A类对象销毁时,B类引用所指向的对象也一同消失,没有任何一个引用指向他,该引用成为了垃圾对象,被回收;
聚合:加入A类销毁后,B类对象还有在其它位置被引用,B类对象不会被销毁,
电脑与鼠标是聚合关系,电脑毁了,鼠标可以独立存在,还可以接在其它电脑上;

合成复用优点:系统更加灵活,降低类之间耦合度,一个类的变化对其他类造成的影响相对较少;
合成复用缺点:通过组合/聚合方式建造的系统,有较多的对象需要管理;

继承复用优点:易扩展;
继承复用缺点:白箱复用,继承将父类的实现细节暴露给了子类;


继承复用案例

/*** 数据连接*/
public class DBConnection {public String getConnection() {return "数据连接";}
}public class ProDao extends DBConnection {/*** 增加产品*/public void addProduct() {// 父类super获取连接String conn = super.getConnection();System.out.println("使用 " + conn + " 增加产品");}
}public class Main {public static void main(String[] args) {ProductDao proDao = new ProDao();productDao.addProduct();}
}

合成复用案例

/*** 抽象类*/
public abstract class DBConnection {public abstract String getConnection();
}/*** MySQL连接*/
public class MySqlConnection extends DBConnection {@Overridepublic String getConnection() {return "MySQL数据库连接";}
}
/*** Oracle连接*/
public class OracleConnection extends DBConnection {@Overridepublic String getConnection() {return "Oracle数据库连接";}
}//----------------------------------------------------------------------/*** 增加数据*/
public class ProDao {/*** 组合方式注入数据库连接*/private DBConnection connection;public ProductDao(DBConnection connection) {this.connection = connection;}/*** 新增*/public void addProduct() {// 获取连接String conn = connection.getConnection();System.out.println("使用 " + conn + " 增加产品");}
}public class Main {public static void main(String[] args) {ProductDao proDao = new ProDao(new MysqlConnection());productDao.addProduct();}
}

http://www.hkea.cn/news/661364/

相关文章:

  • 丛台企业做网站推广免费建一级域名网站
  • 集宁网站建设免费网站推广网站破解版
  • 网站建设域名的购买有域名和服务器怎么建网站
  • 深圳有什么网站长沙百度seo
  • 台州企业网站模板建站怎么在百度上做公司网页
  • 烟台网站建设联系企汇互联专业网站维护收费标准
  • 网络客户服务平台搜索优化推广公司
  • 建设网站技术方案线上教育培训机构十大排名
  • 沈阳人流seo优化师就业前景
  • 开发区网站制作公司seo关键词有话要多少钱
  • 网站被篡改处理app拉新平台
  • 在线房屋设计网站seo推广平台服务
  • 电子政务门户网站建设代码短链接生成网址
  • 崔各庄地区网站建设百度非企渠道开户
  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构
  • 移动网站设计与制作怎么找关键词
  • 国内移动端网站做的最好的厦门人才网597人才网
  • 建网站收费吗aso关键词覆盖优化
  • 西安的网站设计与制作首页微信视频号怎么推广引流
  • 顺义公司建站多少钱pc端百度
  • wordpress收费资源下载关键词优化的策略
  • 广州做网站建设的公司网站公司
  • 做网络平台的网站有哪些广州网站维护
  • 网页 代码怎么做网站东莞市民最新疫情
  • 电子商务网站设计中影响客户体验的元素有搜索引擎有哪些种类
  • 网站建设难点优化关键词技巧
  • 免费行情网站链接百度知道合伙人官网