Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
4383718
new project
LishaoyuVincent Jun 17, 2017
44e471c
modify ood
LishaoyuVincent Jun 17, 2017
b82b6b4
SRP 1.0-version
yuanfangblues Jun 19, 2017
9b47297
srp 349184132
yuanfangblues Jun 19, 2017
a380011
Merge pull request #1 from begin16119/boxin
yuanfangblues Jun 19, 2017
aab9cf8
Merge pull request #1 from onlyliuxin/master
Jun 19, 2017
8a8a959
OCP练习
palmshe Jun 18, 2017
6a9087e
Merge branch 'master' of https://github.com/palmshe/coding2017
palmshe Jun 19, 2017
4b1e987
Merge branch 'master' of https://github.com/palmshe/coding2017
palmshe Jun 19, 2017
c6d4bc0
Merge branch 'master' of https://github.com/palmshe/coding2017
palmshe Jun 19, 2017
ce13e90
SRP 2.0-version
yuanfangblues Jun 19, 2017
8c21a20
OCP练习
palmshe Jun 19, 2017
62ed551
2017.6.19
Jun 19, 2017
46f8aae
OCP 1.0-version
yuanfangblues Jun 19, 2017
1e80f7c
Submit for homework
Tony080 Jun 19, 2017
927e4ab
ood
walker113 Jun 19, 2017
4c068f5
重构PromotionMail满足SRP
jimmykwong Jun 20, 2017
473e0e8
重构PromotionMail满足SRP
jimmykwong Jun 20, 2017
bbafab3
重构PromotionMail满足SRP
jimmykwong Jun 20, 2017
08b18ae
Merge branch 'master' of https://github.com/lanyuanxiaoyao/coding2017
Jun 20, 2017
794103a
Merge pull request #2 from onlyliuxin/master
Jun 20, 2017
ee134d5
Merge pull request #421 from lanyuanxiaoyao/master
onlyliuxin Jun 20, 2017
b013f19
Merge pull request #420 from jimmykwong/master
onlyliuxin Jun 20, 2017
4440a01
Merge pull request #417 from Tony-Hu/master
onlyliuxin Jun 20, 2017
1dff723
Merge pull request #413 from LishaoyuVincent/master
onlyliuxin Jun 20, 2017
d11db59
Merge pull request #414 from palmshe/master
onlyliuxin Jun 20, 2017
9b5b947
Merge pull request #419 from walker113/master
onlyliuxin Jun 20, 2017
68438c9
Merge pull request #415 from begin16119/master
onlyliuxin Jun 20, 2017
8fbb80a
第二次作业参考答案
onlyliuxin Jun 20, 2017
e32df47
Merge branch 'master' of https://github.com/onlyliuxin/coding2017
onlyliuxin Jun 20, 2017
5c6cd6b
remove unused code
onlyliuxin Jun 20, 2017
3f9efb7
恢复被覆盖的文件
onlyliuxin Jun 20, 2017
d124ab2
恢复被删除的文件
onlyliuxin Jun 20, 2017
40aacb9
Delete test.txt
onlyliuxin Jun 20, 2017
4f161d3
删除文件
onlyliuxin Jun 20, 2017
96a90f2
重构邮件系统
Jun 20, 2017
288861e
重构日志打印类
hmgogo Jun 20, 2017
4bab040
第二周作业
MIMIEYES Jun 21, 2017
8b1c73c
Create readme.md
MIMIEYES Jun 21, 2017
0d2da41
Merge pull request #432 from MIMIEYES/master
onlyliuxin Jun 21, 2017
2ed0766
Merge pull request #431 from hmgogo/master
onlyliuxin Jun 21, 2017
82fa8a4
Merge pull request #430 from litbai/master
onlyliuxin Jun 21, 2017
bc4a925
ood-ocp-homework
ericwang1984 Jun 21, 2017
fd45db2
Merge pull request #435 from ericwang1984/master
onlyliuxin Jun 21, 2017
0477883
srp homework refactor
onlyliuxin Jun 22, 2017
ae29f7a
Merge branch 'master' of https://github.com/onlyliuxin/coding2017
onlyliuxin Jun 22, 2017
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,7 @@
package com.coderising.ood.ocp.good;

public interface Formatter {

String format(String msg);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.coderising.ood.ocp.good;

public class FormatterFactory {
public static Formatter createFormatter(int type){
if(type == 1){
return new RawFormatter();
}
if (type == 2){
return new HtmlFormatter();
}
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.coderising.ood.ocp.good;

public class HtmlFormatter implements Formatter {

@Override
public String format(String msg) {

return null;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.coderising.ood.ocp.good;

public class Logger {

private Formatter formatter;
private Sender sender;

public Logger(Formatter formatter,Sender sender){
this.formatter = formatter;
this.sender = sender;
}
public void log(String msg){
sender.send(formatter.format(msg)) ;
}


}

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.coderising.ood.ocp.good;

public class RawFormatter implements Formatter {

@Override
public String format(String msg) {

return null;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.coderising.ood.ocp.good;

public interface Sender {

void send(String msg);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.coderising.ood.srp.good.template;

public interface MailBodyTemplate {
public String render();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.coderising.ood.srp.good.template;

import java.util.Map;

public class TextMailBodyTemplate implements MailBodyTemplate {

private Map<String,String >paramMap ;

public TextMailBodyTemplate(Map<String,String> map){
paramMap = map;
}

@Override
public String render() {
//使用某种模板技术实现Render
return null;
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coderising.ood.srp.configure;
package com.coderising.ood.srp.good1;
import java.util.HashMap;
import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coderising.ood.srp.configure;
package com.coderising.ood.srp.good1;

public class ConfigurationKeys {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.coderising.ood.srp.good1;

import java.util.List;

import com.coderising.ood.srp.good.template.MailBodyTemplate;

public class Mail {

private User user;

public Mail(User u){
this.user = u;
}
public String getAddress(){
return user.getEMailAddress();
}
public String getSubject(){
return "您关注的产品降价了";
}
public String getBody(){

return "尊敬的 "+user.getName()+", 您关注的产品 " + this.buildProductDescList() + " 降价了,欢迎购买!" ;
}
private String buildProductDescList() {
List<Product> products = user.getSubscribedProducts();
//.... 实现略...
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.coderising.ood.srp.good1;

public class MailSender {

private String fromAddress ;
private String smtpHost;
private String altSmtpHost;

public MailSender(Configuration config){
this.fromAddress = config.getProperty(ConfigurationKeys.EMAIL_ADMIN);
this.smtpHost = config.getProperty(ConfigurationKeys.SMTP_SERVER);
this.altSmtpHost = config.getProperty(ConfigurationKeys.ALT_SMTP_SERVER);
}

public void sendMail(Mail mail){
try{
sendEmail(mail,this.smtpHost);
}catch(Exception e){
try{
sendEmail(mail,this.altSmtpHost);
}catch (Exception ex){
System.out.println("通过备用 SMTP服务器发送邮件失败: " + ex.getMessage());
}

}
}

private void sendEmail(Mail mail, String smtpHost){

String toAddress = mail.getAddress();
String subject = mail.getSubject();
String msg = mail.getBody();
//发送邮件
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.coderising.ood.srp.good1;



public class Product {

private String id;
private String desc;
public String getDescription(){
return desc;
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.coderising.ood.srp.good1;


public class ProductService {
public Product getPromotionProduct(){
//从文本文件中读取文件列表
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.coderising.ood.srp.good1;

import java.util.List;

public class PromotionJob {

private ProductService productService = null ; //获取production service
private UserService userService = null ;// 获取UserService

public void run(){

Configuration cfg = new Configuration();

Product p = productService.getPromotionProduct();

List<User> users = userService.getUsers(p);

MailSender mailSender = new MailSender(cfg);

for(User user : users){
mailSender.sendMail(new Mail(user));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.coderising.ood.srp.good1;

import java.util.List;



public class User {

private String name;
private String emailAddress;

private List<Product> subscribedProducts;

public String getName(){
return name;
}
public String getEMailAddress() {
return emailAddress;
}
public List<Product> getSubscribedProducts(){
return this.subscribedProducts;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.coderising.ood.srp.good1;

import java.util.List;

public class UserService {

public List<User> getUsers(Product product){
//调用DAO相关的类从数据库中读取订阅产品的用户列表
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.coderising.ood.srp.good2;

import java.util.List;

import com.coderising.ood.srp.good1.Product;

public class ProductService {
public List<Product> getPromotionProducts(){
//从文本文件中读取文件列表
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.coderising.ood.srp.good2;

import java.util.List;

import com.coderising.ood.srp.good1.Product;
import com.coderising.ood.srp.good1.User;

public class UserService {
public List<User> getUsers(List<Product> products){
//调用DAO相关的类从数据库中读取订阅产品的用户列表
return null;
}
}
32 changes: 32 additions & 0 deletions students/136427763/ood/ood-assignment/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.coderising</groupId>
<artifactId>ood-assignment</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>ood-assignment</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>

</dependencies>
<repositories>
<repository>
<id>aliyunmaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.coderising.ood.config;
import java.util.HashMap;
import java.util.Map;

public class Configuration {



static Map<String,String> configurations = new HashMap<>();
static{
configurations.put(ConfigurationKeys.SMTP_SERVER, "smtp.163.com");
configurations.put(ConfigurationKeys.ALT_SMTP_SERVER, "smtp1.163.com");
configurations.put(ConfigurationKeys.EMAIL_ADMIN, "admin@company.com");
}
/**
* 应该从配置文件读, 但是这里简化为直接从一个map 中去读
* @param key
* @return
*/
public String getProperty(String key) {

return configurations.get(key);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.coderising.ood.config;

public class ConfigurationKeys {

public static final String NAME_KEY = "NAME";
public static final String EMAIL_KEY = "EMAIL";


public static final String SMTP_SERVER = "smtp.server";
public static final String ALT_SMTP_SERVER = "alt.smtp.server";
public static final String EMAIL_ADMIN = "email.admin";

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.coderising.ood.mail;

import java.io.File;
import java.util.List;

import com.coderising.ood.model.MailSender;
import com.coderising.ood.model.MailSetting;
import com.coderising.ood.model.Product;
import com.coderising.ood.model.SubcribeMailReciver;
import com.coderising.ood.util.FileUtil;

public class PromotionMail {

public static void main(String[] args) throws Exception {
File file = new File("D:\\homework\\coding2017\\students\\136427763\\ood\\ood-assignment\\src\\main\\java\\com\\coderising\\ood\\config\\product_promotion.txt");
Product product=FileUtil.readProductFile(file);
SubcribeMailReciver subcribeMailReciver=new SubcribeMailReciver();
List UserList=subcribeMailReciver.getMailReciverList(product);
boolean emailDebug = false;
MailSender mailSender=new MailSender();
mailSender.sendEMails(emailDebug, UserList, product);
}
}
Loading