Java编程思想之-主板设计
2015-05-29 10:07
507 查看
主板在设计的时候,会预留PCI插槽,用来连接网卡、声卡、鼠标、键盘等硬件,用来扩展主板的功能。
如下图:
![](http://s3.51cto.com/wyfs02/M02/6D/9B/wKioL1Vny17BiAnQAACX4eZ9G3A348.jpg)
![](http://s3.51cto.com/wyfs02/M01/6D/A0/wKiom1Vn0G_QKHi1AADDlVE8BYM944.jpg)
这个主板设计将多态、接口等知识点很自然的应用起来。所以继承、接口这些java的特性,也是java的精髓,需要仔细地去领会。
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
接口的好处实例体现2:不同的数据库操作
如下图:
![](http://s3.51cto.com/wyfs02/M02/6D/9B/wKioL1Vny17BiAnQAACX4eZ9G3A348.jpg)
package 面向对象; public class MainBoardDemo { /** * @主板设计设计模式代码实现 */ public static void main(String[] args) { // TODO Auto-generated method stub MainBoard mb = new MainBoard(); //创建主板实例 mb.run(); //启动主板 mb.usePCI(new NetWorkCard()); //连接网卡 mb.usePCI(new SoundCard()); //连接声卡 } } //主板类 class MainBoard { public void run() //开启主板 { System.out.println("mainboard run"); } public void usePCI(PCI p) //利用多态来扩展功能 { if(p!=null) { if(p instanceof NetWorkCard) { NetWorkCard nwc = (NetWorkCard)p; nwc.open(); nwc.close(); }else if(p instanceof SoundCard) { SoundCard sc = (SoundCard)p; sc.open(); sc.close(); } } } } //PCI接口,对外暴露原则 interface PCI { public abstract void open(); //打开硬件 public abstract void close(); //关闭硬件 } //网卡类 class NetWorkCard implements PCI { public void open(){ System.out.println("NetWorkCard run"); } public void close(){ System.out.println("NetWorkCard close"); } } //声卡类 class SoundCard implements PCI { public void open() { System.out.println("SoundCard fun"); } public void close() { System.out.println("SoundCard close"); } }程序运行结果如下图所示:
![](http://s3.51cto.com/wyfs02/M01/6D/A0/wKiom1Vn0G_QKHi1AADDlVE8BYM944.jpg)
这个主板设计将多态、接口等知识点很自然的应用起来。所以继承、接口这些java的特性,也是java的精髓,需要仔细地去领会。
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
接口的好处实例体现2:不同的数据库操作
package 面向对象; public class OperateJDBC { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub User user = new User(); DataDao dd = new D1(); //如果想改为另外一种数据库,直接将D1改成D2即可。 dd.add(user); dd.delete(user); } } interface DataDao //不同的数据库都有添加与删除的功能,但是功能内容不一致,所以抽取为接口。 { public void add(User user); public void delete(User user); } class D1 implements DataDao //数据库1 { public void add(User user) { //具体实现代码 } public void delete(User user) { //具体实现代码 } } class D2 implements DataDao //数据库2 { public void add(User user) { //具体实现代码 } public void delete(User user) { //具体实现代码 } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统