- 博客(25)
- 收藏
- 关注
原创 设计模式(二十五)——访问者模式
二、访问者模式访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。import java.util.ArrayList;import java.util.List;abstract class Visitor { public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA); public abstract void Visit
2020-06-22 00:52:54
121
原创 设计模式(二十四)——命令模式
一、以烤羊肉串为例:1.紧耦合class Barbecuer { // 烤羊肉 public void BakeMutton() { System.out.println("烤羊肉串!"); } // 烤鸡翅 public void BakeChickenWing() { System.out.println("烤鸡翅!"); }}public class Commands { public static void main(String[] args) { Bar
2020-06-22 00:37:37
104
1
原创 设计模式(二十三)——职责链模式
一、以加薪代码为例//加薪代码初步class Request { // 申请类 private String requestType;// 申请类别 private String RequestContent;// 申请内容 private int number;// 数量 public int getNumber() { return number; } public void setNumber(int number) { this.number = number; }
2020-06-21 22:52:06
90
原创 设计模式(二十二)——组合模式
一、公司管理系统abstract class Company { // 公司类 protected String name; public Company(String name) { super(); this.name = name; } public abstract void Add(Company c); public abstract void Remove(Company c); public abstract void Display(int depth);
2020-06-21 21:24:44
152
原创 设计模式(二十一)——备忘录模式
一、游戏存进度class GameRole { private int vit; // 体力 private int atk; // 攻击力 private int def; // 防御力 public int getAtk() { return atk; } public void setAtk(int atk) { this.atk = atk; } public int getVit() { return vit; } public void setVit(i
2020-06-05 22:35:49
71
原创 设计模式(二十)——状态模式
一、例:工作状态class Work { private int Hour; private boolean WorkFinished = false; public int getHour() { return Hour; } public void setHour(int hour) { Hour = hour; } public boolean isWorkFinished() { return WorkFinished; } public void setWo
2020-06-04 22:24:31
75
原创 设计模式(十九)——观察者模式
一、例:老板回来,我不知道双向耦合的代码:import java.util.ArrayList;//观察者模式class Secretary { // 前台秘书类 private ArrayList<StockObserver> observers = new ArrayList<StockObserver>(); // 同事列表 private String action; public void Attach(StockObserver observer) {
2020-06-04 13:08:21
102
原创 设计模式(十八)——模板方法模式
一、例:选择题问题class TestPaperA { // 学生甲抄的试卷 public void TestQuestion1() { System.out.println("杨过得到,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可能是: a.球磨铸铁;b.马口铁;c.高速合金钢;d.碳素纤维"); System.out.println("答案:b"); } public void TestQuestion2() { System.out.println("杨过、程英、陆无双铲除了情花,造
2020-05-12 22:43:33
161
原创 设计模式(十七)——策略模式
一、商场收银软件用简单工厂实现:abstract class CashSuper { // 现金收费抽象类 public abstract double acceptCash(double money);}class CashNormal extends CashSuper { // 正常收费子类 @Override public double acceptCash(double money) { // TODO Auto-generated method stub return
2020-05-12 21:40:05
111
原创 设计模式(十六)——装饰模式
一、以人及其属性为例:abstract class Person { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public abstract void desc();}class Chi...
2020-05-05 20:56:30
152
原创 设计模式(十五)——桥接模式
一、紧耦合的程序演化例:有一个N品牌手机,调用游戏class HandsetNGame{ //N品牌手机中的游戏 public void Run() { System.out.println("运行N品牌手机游戏"); }}public class Main { public static void main(String[] args) { HandsetNGame ga...
2020-04-28 22:48:18
97
原创 设计模式(十四)——中介者模式
一、中介者模式中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。abstract class Mediator{ //抽象中介者类 public abstract void Send(String message,Colleague colleague);}abstract class Colle...
2020-04-28 21:58:20
154
原创 设计模式(十三)——适配器模式
一、适配器模式适配器模式:将一个类的接口转换成客户希望的另外一个接口。这使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。//Target,客户所期待的接口class Target { public void Resquest() { System.out.println("普通请求!"); }}//Adaptee,需要适配的类class Adaptee { pub...
2020-04-21 23:01:11
116
原创 设计模式(十二)——代理模式
一、没有代理的代码以追求为例:class Pursuit{ SchoolGirl mm; public Pursuit(SchoolGirl mm) { super(); this.mm = mm; } public void GiveDolls() { System.out.println(mm.getName()+"送你洋娃娃"); } public void G...
2020-04-21 22:16:34
64
原创 设计模式(十一)——门面模式
一、一个可以给人搭配衣服的系统Person类class Person { private String name; public Person(String name) { super(); this.name = name; } public void WearTShirts() { System.out.print("大T恤"+" "); } public v...
2020-04-21 21:27:40
85
原创 设计模式(十)——享元模式
一、以网站类为例:class WebSite{ //网站类 private String name=""; public WebSite(String name) { this.name=name; } public String Use() { return "网站分类:"+name; }}public class Main { public static void ...
2020-04-14 22:49:39
81
原创 设计模式(九)——单例模式
一、单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点[DP].class Singleton{ private static Singleton instance; private Singleton() { } public static Singleton GetInstance() {//此方法是唯一获得本类实例的唯一全局访问点 if(...
2020-04-14 20:54:04
79
原创 设计模式(八)——建造者模式
一、以建造小人为例建造小人一import java.awt.Frame;import java.awt.Graphics;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;class DrawPerson extends Frame{ public void paint(Graphics g) ...
2020-04-08 00:13:53
97
原创 设计模式(七)——原型模式
以简历类为例:一、简历代码初步实现class Resume{ private String name; private String sex; private String age; private String timeArea; private String company; public Resume(String name) { this.name=name; } ...
2020-04-07 21:15:07
233
原创 设计模式(六)——抽象工厂模式
class User{ private int id; private String name; public int getId() { return id; } public String getName() { return name; }}class SqlserverUser{ public void Insert(User user) { System.o...
2020-04-01 22:02:55
117
原创 设计模式(五)——工厂方法模式
以计算器为例:简单工厂模式:abstract class Operation{ private double numberA=0; private double numberB=0; boolean flag=true; public double getNumberA() { return numberA; } public void setNumberA(double nu...
2020-03-31 21:22:53
68
原创 设计模式(四)——常见面向对象设计原则(二)
合成/聚合复用原则(CARP)尽量使用合成/聚合的方式(依赖、聚合、组合),而不是用继承//依赖class B{opertion (A a) {a. opertion2() ; }}//聚合class B{A a;void setA(A a){a. opertion2() ;}}//组合class B{A a=new A( );}接口隔离原则(ISP)不应该依赖...
2020-03-24 20:59:22
104
原创 设计模式(三)———常见面向对象设计原则(1)
//单一职责原则,根据交通工具运行的方法不同,分解成不同的类/*public class Main {public static void main(String[] args) {RoadVehicle roadVehicle = new RoadVehicle();roadVehicle.run(“摩托车”);roadVehicle.run(“汽车”);AirVehicle air...
2020-03-24 19:35:20
105
原创 设计模式(二)——UML类图怎么画
UML类图怎么画一、注释(comment)注释就是对类图的补充说明,可以附加在任何元素上,用右上角有折角的矩形来表示,其内放置说明文字,通过虚线连接被注释的元素。二、类(Class)在面向对象(OO) 编程中,类是对现实世界中一组具有相同特征的物体的抽象。在 在UML 类图中,类使用包含 类名 、 属性(field) 和 和 方法(method) 且带有分割线的矩形来表示:类的属性...
2020-03-10 20:43:46
18212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人