关键词:
设计原则:SOLID 可以说,五个设计原则各司其职。
单一职责原则(S):用于类的设计
开闭原则(O):总的指导思想
里氏替换原则(L):用于指导类继承的设计
接口隔离原则(I):用于指导接口的设计
依赖翻转原则(D):用于指导如何抽象
类之间的关系:
继承=实现>组合>聚合>关联>依赖
继承:带三角箭头的实线,箭头指向父类
接口能够隔离封装,为系统的可插拔性提供保证。在接口也抽象类的选择上,应该优先选择接口,只有需要为子类提供公共功能的时候,才需要考虑抽象类。
下面举个例子,说明接口的具体实现。
public interface product { public void createProduct(); } public class conCreteProduct implements product { @Override public void createProduct() { // TODO Auto-generated method stub System.out.println("生产产品"); } } public class user { public static void main(String[] args) { // TODO Auto-generated method stub product prod1 = new conCreteProduct(); prod1.createProduct(); } }
public interface product { public void createProduct(); } public class conCreteProduct implements product { @Override public void createProduct() { // TODO Auto-generated method stub System.out.println("生产产品"); } } public class factory { public void createProduct() { product prod1 = new conCreteProduct(); prod1.createProduct(); } } public class user { public static void main(String[] args) { // TODO Auto-generated method stub factory fact1 = new factory(); fact1.createProduct(); } }
public interface product { public void makeProduct(); } public class concreteProduct implements product { @Override public void makeProduct() { // TODO Auto-generated method stub System.out.println("中国制造"); } } public class factory { public static product makeProduct() { Properties pro = new Properties(); InputStream in = null; try { in = factory.class.getResourceAsStream("factory.properties"); pro.load(in); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } product prod = null; try { prod = (product) Class.forName(pro.getProperty("product1")).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return prod; } } public class user { public static void main(String[] args) { // TODO Auto-generated method stub product prod = factory.makeProduct(); prod.makeProduct(); } } 配置文件factory.properties product1=No0.concreteProduct
java面向对象与设计模式
第四式工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化那一个类,对象工厂模式使一个类的实例化延迟到子类。优点:可以在不知具体实现的情况下编程;更容易扩展对象的新版本;连接平行的类层次。缺... 查看详情
java面向对象与设计模式
第一式外观模式定义:为子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这一接口使得这一子系统更加容易使用。优点:松散耦合简单易用更好地划分访问的层次缺点:不应过度使用本质:封装交互简单... 查看详情
java面向对象与设计模式
第五式抽象工厂模式定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。(创建的对象之间有约束)抽象工厂模式的本质:选择产品簇的实现优点:分离接口和产品簇,使得切换产品簇变得容易缺... 查看详情
javascript设计模式学习之一——javascript面向对象与java的区别
一、静态语言与动态语言面向对象之对比 封装: 1)封装数据:java中通过私有变量Private等实现,javascript中通过函数内的局部变量实现 2)封装实现:对象内部的变化对于外部是透明的,对象之间通过暴露的... 查看详情
马凯军201771010116《面向对象与程序设计java》
...与要求(1)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI 程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验内容和步骤任务1:填写课程课后调查问卷,网址:... 查看详情
java基础06类与对象封装构造方法
第1章面向对象思想1.1面向对象思想概述概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物... 查看详情
java面向对象与设计模式
设计原则:SOLID可以说,五个设计原则各司其职。单一职责原则(S):用于类的设计开闭原则(O):总的指导思想里氏替换原则(L):用于指导类继承的设计接口隔离原则(I):用于指导接口的设计依赖翻转原则(D):用于指导如何抽象类... 查看详情
2016710101352016--2017--《java程序结构设计:对象与类》
1、面向对象程序设计简介 面向对象的基本思想是使用类、对象、继承、封装、消息等基本概念来进行程序设计。 采用面向对象方式开发的软件系统,其最小的程序单元是类,这些类可以生成系统中的... 查看详情
java类与对象中的方法
java语言是一门面向对象的程序设计语言,而面向对象是一种程序设计思想,在面向对象思想的指引下,使用java语言设计、开发计算机程序,这里面的对象泛指程序中(现实中)的一切事物,每种事物都有他自己的属性(特征)... 查看详情
面向对象与面向过程的区别
面向过程面向过程性能比面向对象性能好。因为类的实例化比较消耗资源。当性能是设计中非常重要的因素时,一般采用面向过程开发。最主要的性能区别在于:拿Java来说,在运行时先在Java平台编译为体系结构中立的字节码格... 查看详情
面向对象分析与设计实验七
实验一:http://www.cnblogs.com/scaugsh/p/8983219.html实验二:http://www.cnblogs.com/scaugsh/p/8983253.html实验三:http://www.cnblogs.com/scaugsh/p/9046697.html实验四:http://www.cnblogs.com/scaugsh/p/9056838.html实验七: 查看详情
《面向对象程序设计(java)》第二周学习总结
《面向对象程序设计(java)》第二周学习总结王颖奇201771010129第一部分:实验目的与要求①理论部分目的与要求(1)3.1基本知识(2)3.2数据类型(3)3.3变量(4)3.4运算符(5)3.5类型转换(6)3.6字符类型(7)3.7输入输出(8)... 查看详情
七日阅书4理解面向对象《java程序设计与计算思维》(代码片段)
目录一、前情提要二、面向对象1.类Class2.一个成熟的类3.继承4.多态三、总结四、源码地址一、前情提要【七日阅书】1计算思维和Java特性《Java程序设计与计算思维》【七日阅书】2Java的数据类型和流程控制《Java程序设计与计算... 查看详情
达拉草201771010105《面向对象程序设计(java)》第七周学习总结(代码片段)
达拉草201771010105《面向对象程序设计(java)》第七周学习总结实验七继承附加实验实验时间2018-10-111、实验目的与要求(1)进一步理解4个成员访问权限修饰符的用途;(2)掌握Object类的常用API用法;(3)掌握ArrayList类用法与... 查看详情
《面向对象程序设计(java)》第七周学习总结(代码片段)
...使用方法;(5)结合本章知识,理解继承与多态性两个面向对象程序设计特征,并体会其优点;(6)熟练掌握Java语言中基于类、继承技术构造程序的语法知识(ch1-ch5);(7)利用已掌握Java语言程序设计知识,学习设计 查看详情
设计模式与面向对象
面向对象基础抽象封装继承多态组合良好的OO设计可复用可扩充可维护设计模式 查看详情
2018-2019-220175105王鑫浩实验二《java面向对象程序设计》实验报告
...装,继承,多态3.初步掌握UML建模4.熟悉S.O.L.I.D原则5.了解设计模式二、实验内容(一)、单元测试1.三种代码伪代码百分制转五分制:如果成绩小于60,转成“不及格”如果成绩在60与70之间,转成“及格”如果成绩在70与80之间,... 查看详情
杨玲201771010133《面向对象程序设计(java)》第五周学习总结
《面向对象程序设计(java)》第五周学习总结第一部分:课程准备部分第二部分:理论知识学习部分 第四章:对象与类 4.1:类与对象的概念。 类:是构造对象的模板或蓝图。由类构造对象的过程称为创建类的实例... 查看详情