当前位置:首页 > CN2资讯 > 正文内容

我的世界java怎么变天亮

3天前CN2资讯


 

正文:

以道御术 / 以术识道

 

 

 

 

package 开闭原则; public class Ocp { public static void main(String[] args) { //使用看看,存在的问题 GraphicEditor graphicEditor = new GraphicEditor(); graphicEditor.drawShape(new Rectangle()); graphicEditor.drawShape(new Circle()); } } //下面写一个用于绘图的类 class GraphicEditor{ //夜光:接收shape对象,然后来绘制不同的图形 public void drawShape(Shape s){ if (s.m_type == 1) drawRectangle(s); else if(s.m_type == 2) drawCircle(s); } public void drawRectangle(Shape r){ System.out.println(" 绘制矩形"); } public void drawCircle(Shape r){ System.out.println(" 绘制圆形"); } } //这里,我们定义了一个Shape类,基类 class Shape{ int m_type; } class Rectangle extends Shape{ Rectangle(){ super.m_type = 1; } } class Circle extends Shape{ Circle(){ super.m_type = 2; } }

 

 

package 开闭原则; public class Ocp { public static void main(String[] args) { //使用看看,存在的问题 GraphicEditor graphicEditor = new GraphicEditor(); graphicEditor.drawShape(new Rectangle()); graphicEditor.drawShape(new Circle()); graphicEditor.drawShape(new Triangle()); } } //下面写一个用于绘图的类 class GraphicEditor{ //夜光:接收shape对象,然后来绘制不同的图形 public void drawShape(Shape s){ if (s.m_type == 1) drawRectangle(s); else if(s.m_type == 2) drawCircle(s); else if(s.m_type == 3) drawTriangle(s); } //绘制矩形 public void drawRectangle(Shape r){ System.out.println(" 绘制矩形"); } //绘制圆形 public void drawCircle(Shape r){ System.out.println(" 绘制圆形"); } //绘制圆形 public void drawTriangle(Shape r){ System.out.println(" 绘制三角形"); } } //这里,我们定义了一个Shape类,基类 class Shape{ int m_type; } class Rectangle extends Shape{ Rectangle(){ super.m_type = 1; } } class Circle extends Shape{ Circle(){ super.m_type = 2; } } //新增画三角形 class Triangle extends Shape{ Triangle(){ super.m_type = 3; } }

 

 

 

package 开闭原则.分析; public class Ocp { public static void main(String[] args) { //使用看看,存在的问题 GraphicEditor graphicEditor = new GraphicEditor(); graphicEditor.drawShape(new Rectangle()); graphicEditor.drawShape(new Circle()); graphicEditor.drawShape(new Triangle()); graphicEditor.drawShape(new OtherGraphic()); } } //下面写一个用于绘图的类 class GraphicEditor{ //夜光:接收shape对象,然后来绘制不同的图形 public void drawShape(Shape s){ s.draw(); } } //这里,我们定义了一个Shape类,基类 //定义为抽象方法 abstract class Shape{ int m_type; public abstract void draw(); //抽象方法 } class Rectangle extends Shape { Rectangle(){ super.m_type = 1; } @Override public void draw() { System.out.println("绘制矩形"); } } class Circle extends Shape { Circle(){ super.m_type = 2; } @Override public void draw() { System.out.println("绘制圆形"); } } //新增画三角形 class Triangle extends Shape { Triangle(){ super.m_type = 3; } @Override public void draw() { System.out.println("绘制三角形"); } } //其他图形 class OtherGraphic extends Shape{ OtherGraphic(){ super.m_type = 4; } @Override public void draw() { System.out.println("绘制其他图形"); } }

 

 

 

 

 

 

 

在方法前边写:/+快捷键名+Tab键。

即可,比如我设置的快捷键方法名是a

package 迪米特法则; import java.util.ArrayList; import java.util.List; //夜光:写一个类来介绍一下迪米特法则 //客户端 public class Demeter { public static void main(String[] args) { //new一个对象 SchoolManager schoolManager = new SchoolManager(); //调用其方法 schoolManager.printAllEmployee(new CollegeManager()); //传入一个对象CollegeManager } } //学校总部员工 class Employee{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } //学院的员工 class CollegeEmployee{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } //我们写一个类 //管理学院员工的管理类 class CollegeManager{ //返回学院的所有员工 /** * @Description: * @Param: [] * @return: java.util.List<迪米特法则.CollegeEmployee> * @Author: Hy * @Date: 2019/11/28 */ public List<CollegeEmployee> getAllEmployee() { List<CollegeEmployee> list = new ArrayList<CollegeEmployee>(); for (int i = 0; i < 10; i++) { //这里我们增加十个员工到list CollegeEmployee emp = new CollegeEmployee(); emp.setId("学院员工id= " + i); list.add(emp); } return list; } } class SchoolManager{ /** * @Description: * @Param: [] * @return: java.util.List<迪米特法则.Employee> * @Author: Hy * @Date: 2019/11/28 */ public List<Employee> getAllEmployee() { List<Employee> list = new ArrayList<Employee>(); for(int i=0;i<5;i++){ //这里我们增加五个员工到list Employee emp = new Employee(); emp.setId("学院总部员工id= " + i); list.add(emp); } return list; } /** * @Description: 该方法完成输出学校总部和学院员工信息 * @Param: [sub] * @return: void * @Author: Hy * @Date: 2019/11/28 */ void printAllEmployee(CollegeManager sub){ List<CollegeEmployee> list1 = sub.getAllEmployee(); System.out.println("----------------------分公司员工-------------------------"); for(CollegeEmployee e : list1){ System.out.println(e.getId()); } List<Employee> list2 = this.getAllEmployee(); System.out.println("-------------------学校总部员工-------------------------"); for(Employee e : list2){ System.out.println(e.getId()); } } }

package 迪米特法则.improve; import java.util.ArrayList; import java.util.List; //夜光:写一个类来介绍一下迪米特法则 //客户端 public class Demeter { public static void main(String[] args) { System.out.println("使用迪米特法则之后的改进~~~"); //new一个对象 SchoolManager schoolManager = new SchoolManager(); //调用其方法 //输出了学院总部的员工id 和 学院的员工id schoolManager.printAllEmployee(new CollegeManager()); //传入一个对象CollegeManager } } //学校总部员工 class Employee{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } //学院的员工 class CollegeEmployee{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } //我们写一个类 //管理学院员工的管理类 class CollegeManager{ //返回学院的所有员工 /** * @Description: * @Param: [] * @return: java.util.List<迪米特法则.CollegeEmployee> * @Author: Hy * @Date: 2019/11/28 */ public List<CollegeEmployee> getAllEmployee() { List<CollegeEmployee> list = new ArrayList<CollegeEmployee>(); for (int i = 0; i < 10; i++) { //这里我们增加十个员工到list CollegeEmployee emp = new CollegeEmployee(); emp.setId("学院员工id= " + i); list.add(emp); } return list; } //输出学院员工的信息 public void printEmployee(){ /* List<CollegeEmployee> list1 = sub.getAllEmployee();*/ List<CollegeEmployee> list1 = this.getAllEmployee(); System.out.println("----------------------分公司员工-------------------------"); for(CollegeEmployee e : list1){ System.out.println(e.getId()); } } } //夜光:我们来分析一下 //分析SchoolManager的直接朋友有哪些 Employee(成员变量)、CollegeManager //CollegeEmployee不是直接的朋友,这样违背了迪米特法则 class SchoolManager{ /** * @Description: * @Param: [] * @return: java.util.List<迪米特法则.Employee> * @Author: Hy * @Date: 2019/11/28 */ public List<Employee> getAllEmployee() { List<Employee> list = new ArrayList<Employee>(); for(int i=0;i<5;i++){ //这里我们增加五个员工到list Employee emp = new Employee(); emp.setId("学院总部员工id= " + i); list.add(emp); } return list; } /** * @Description: 该方法完成输出学校总部和学院员工信息 * @Param: [sub] * @return: void * @Author: Hy * @Date: 2019/11/28 */ void printAllEmployee(CollegeManager sub){ /* 分析问题 * 1. 这里的CollegeEmployee 不是 SchoolManager 的直接朋友 * 2. CollegeEmployee 是以局部变量的方式出现在 SchoolManager * 3. 违反了迪米特法则 * */ //解决方案,将输出学院的员工的方法,封装到CollegeManager /* List<CollegeEmployee> list1 = sub.getAllEmployee(); System.out.println("----------------------分公司员工-------------------------"); for(CollegeEmployee e : list1){ System.out.println(e.getId()); }*/ sub.printEmployee(); List<Employee> list2 = this.getAllEmployee(); System.out.println("-------------------学校总部员工-------------------------"); for(Employee e : list2){ System.out.println(e.getId()); } } }

 

迪米特法则核心就是降低类之间的耦合

 

 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/21911.html

    分享给朋友:

    “我的世界java怎么变天亮” 的相关文章

    香港虚拟主机CN2是什么意思?全面解析它的优势与意义

    权威解析香港虚拟主机CN2是什么在互联网飞速发展的今天,服务器托管和虚拟主机服务已经成为企业及个人站长运营网站必不可缺的一部分。面对市场上琳琅满目的虚拟主机类型,许多人对“香港虚拟主机CN2”这一概念感到困惑。什么是香港虚拟主机CN2?它到底有什么特殊之处?我们需要明确什么是虚拟主机。虚拟主机是指将...

    如何通过AWS CDN提升网站性能与安全性?全面解析Amazon CloudFront

    什么是AWS CDN AWS CDN,也就是Amazon CloudFront,是一个全球性的内容分发网络服务。它通过遍布全球的节点网络,确保内容能够快速、安全地传递给用户。无论是静态网页、动态内容,还是流媒体,AWS CDN都能提供高效的分发服务。它的设计目标是通过减少延迟和提高数据传输速度,提升...

    搬瓦工VPS与IPv6: 优化你的网络体验

    搬瓦工(BandwagonHost)作为一家由加拿大IT7 Networks公司推出的品牌,专注于提供性价比较高的VPS主机服务。我一直对VPS的体验充满好奇,尤其是搬瓦工的背景与发展历程。最初,搬瓦工主要销售超低价的OpenVZ方案,吸引了不少预算有限的用户。随着技术的发展和市场需求的变化,搬瓦工...

    蘑菇云:自然与核爆炸的惊人现象及其深远影响

    蘑菇云这个词,一提起来让人既熟悉又敬畏。它的外形就像个倒立的蘑菇,顶部宽大、底部则较小,这是因为它源自于强大爆炸所产生的气体。这种云朵看似平常,却是一种强烈爆炸后气体与空气混合的结果。虽然蘑菇云在现代多被与核爆炸联系在一起,但实际上,火山喷发及一些天体撞击也可能产生自然形成的蘑菇云。 了解蘑菇云的形...

    波测评分析及其在医疗与教育领域的重要性

    波测评的定义与重要性 波测评是一种重要的技术手段,专注于评估波动的特性和行为。我发现,这种测评方法在多个行业中都扮演了至关重要的角色,比如医疗、工业和电力等领域。以脑波测评为例,它不仅可以帮助医生了解病人的大脑状态,还能在教育领域评估学习能力。这些应用展示了波测评技术在科学与技术进步中的不可或缺性。...

    国外VPS:高性价比虚拟专用服务器选择指南

    什么是国外VPS? 当我提到国外VPS时,它指的就是虚拟专用服务器(Virtual Private Server),这是一种把物理服务器分割成多个独立的小型服务器的技术。每一个VPS都拥有自己的公网IP地址和操作系统,资源如磁盘空间、内存和CPU都可以独立配置。这种固有的隔离性,可以让我在同一个物理...