Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.coderising.dp.bridge;

public class Circle extends Shape {

@Override
public void draw() {
super.getDrawing().drawCircle();
System.out.println("I'm a Line");

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.coderising.dp.bridge;

public interface Drawing {
void drawLine();
void drawCircle();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.coderising.dp.bridge;

public class DrawingGL1 implements Drawing{

@Override
public void drawLine() {
System.out.println("DrawingGL1.drawLine");
}

@Override
public void drawCircle() {
System.out.println("DrawingGL1.drawCircle");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.coderising.dp.bridge;

public class DrawingGL2 implements Drawing{

@Override
public void drawLine() {
System.out.println("DrawingGL2.drawLine");
}

@Override
public void drawCircle() {
System.out.println("DrawingGL2.drawCircle");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.coderising.dp.bridge;

public class Rectangle extends Shape {

@Override
public void draw() {
super.getDrawing().drawLine();
System.out.println("I'm a Rectangle");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.coderising.dp.bridge;

public abstract class Shape {
public Drawing drawing;
public Drawing getDrawing() {
return drawing;
}
public void setDrawing(Drawing drawing) {
this.drawing = drawing;
}
public abstract void draw();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.coderising.dp.bridge;

public class Test {

public static void main(String[] args) {
Shape rectangel=new Rectangle();
rectangel.setDrawing(new DrawingGL1());
rectangel.draw();


Shape circle=new Circle();
circle.setDrawing(new DrawingGL2());
circle.draw();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.coderising.dp.composite;

public class Line implements Shape {

@Override
public void draw() {
System.out.println("I'm a Line");

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.coderising.dp.composite;

import java.util.ArrayList;
import java.util.List;

public class Picture implements Shape{
private List<Shape> shapes=new ArrayList<>();
@Override
public void draw() {
for (Shape shape : shapes) {
shape.draw();
}
}

public void add(Shape shape){
shapes.add(shape);
}

public static void main(String[] args) {
Picture aPicture=new Picture();
aPicture.add(new Line());
aPicture.add(new Rectangle());

Picture a=new Picture();
a.add(new Text());
a.add(new Line());
a.add(new Square());
aPicture.add(a);

aPicture.draw();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.coderising.dp.composite;

public class Rectangle implements Shape {

@Override
public void draw() {
System.out.println("I'm a Rectangle");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.coderising.dp.composite;

public interface Shape {
public void draw();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.coderising.dp.composite;

public class Square implements Shape {

@Override
public void draw() {
System.out.println("I'm a Square");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.coderising.dp.composite;

public class Text implements Shape {

@Override
public void draw() {
System.out.println("I'm a Text");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.coderising.dp.decorator;

public interface Email {
public String getContent();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.coderising.dp.decorator;

public class EmailImpl implements Email{
private String content;

public EmailImpl(String content) {
this.content = content;
}

@Override
public String getContent() {
return content;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.coderising.dp.decorator;

public class EmailProxy implements Email{
Email email;

@Override
public String getContent() {
String content=email.getContent()+"\n本邮件仅为个人观点,并不代表公司立场";
System.out.println(content);
content=Encrypt.SHA256(content);
System.out.println(content);
return content;
}

public void setEmail(Email email) {
this.email = email;
}

public static void main(String[] args) {
EmailImpl email=new EmailImpl("hello world!");
EmailProxy proxy=new EmailProxy();
EmailProxy proxy1=new EmailProxy();
proxy.setEmail(email);
// proxy.getContent();
proxy1.setEmail(proxy);
proxy1.getContent();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package com.coderising.dp.decorator;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Encrypt {
/**
* 传入文本内容,返回 SHA-256 串
*
* @param strText
* @return
*/
public static String SHA256(final String strText)
{
return SHA(strText, "SHA-256");
}

/**
* 传入文本内容,返回 SHA-512 串
*
* @param strText
* @return
*/
public static String SHA512(final String strText)
{
return SHA(strText, "SHA-512");
}

/**
* 字符串 SHA 加密
*
* @param strSourceText
* @return
*/
private static String SHA(final String strText, final String strType)
{
// 返回值
String strResult = null;

// 是否是有效字符串
if (strText != null && strText.length() > 0)
{
try
{
// SHA 加密开始
// 创建加密对象 并傳入加密類型
MessageDigest messageDigest = MessageDigest.getInstance(strType);
// 传入要加密的字符串
messageDigest.update(strText.getBytes());
// 得到 byte 類型结果
byte byteBuffer[] = messageDigest.digest();

// 將 byte 轉換爲 string
StringBuffer strHexString = new StringBuffer();
// 遍歷 byte buffer
for (int i = 0; i < byteBuffer.length; i++)
{
String hex = Integer.toHexString(0xff & byteBuffer[i]);
if (hex.length() == 1)
{
strHexString.append('0');
}
strHexString.append(hex);
}
// 得到返回結果
strResult = strHexString.toString();
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
}

return strResult;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.coderising.dp.bridge;

public class Circle extends Shape {
private int x, y, r;

public Circle(Drawing drawing, int x, int y, int r) {
super(drawing);
this.x = x;
this.y = y;
this.r = r;
}

@Override
public void draw() {
// TODO Auto-generated method stub
drawing.drawCircle(x, y, r);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.coderising.dp.bridge;

public interface Drawing {
public void drawLine(int x1, int y1, int x2, int y2);
public void drawCircle(int x, int y, int r);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.coderising.dp.bridge;

public class DrawingGL1 implements Drawing {
private GraphicLibrary1 graphicLibray1;

@Override
public void drawLine(int x1, int y1, int x2, int y2) {
// TODO Auto-generated method stub
graphicLibray1.draw_a_line(x1, y1, x2, y2);
}

@Override
public void drawCircle(int x, int y, int r) {
// TODO Auto-generated method stub
graphicLibray1.draw_a_circle(x, y, r);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.coderising.dp.bridge;

public class DrawingGL2 implements Drawing {
private GraphicLibrary2 graphicLibrary2;

@Override
public void drawLine(int x1, int y1, int x2, int y2) {
// TODO Auto-generated method stub
graphicLibrary2.drawLine(x1, x2, y1, y2);
}

@Override
public void drawCircle(int x, int y, int r) {
// TODO Auto-generated method stub
graphicLibrary2.drawCircle(x, y, r);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.coderising.dp.bridge;

public class GraphicLibrary1 {
public void draw_a_line(int x1,int y1,int x2,int y2){

}
public void draw_a_circle(int x,int y, int r){

}

}
Loading