Created
August 7, 2016 08:45
-
-
Save philographer/95fb2e3929a2d6e881e46f52b37fe94f to your computer and use it in GitHub Desktop.
SW Maestro 7기 연수생 2차 Front End 과제
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// main.swift | |
// UML | |
// | |
// Created by 유호균 on 2016. 8. 6.. | |
// Copyright © 2016년 timeros. All rights reserved. | |
// | |
import Foundation | |
class Person { | |
var name: String | |
var age: Int = 0 //Init Value | |
var _birthYear = 0 | |
var birthYear: Int{ | |
get{ | |
return self._birthYear | |
} | |
set{ | |
let date = NSDate() | |
let calendar = NSCalendar.currentCalendar() | |
let components = calendar.components([.Year], fromDate: date) | |
let year = components.year | |
self.age = year - newValue | |
self._birthYear = newValue | |
} | |
} | |
func setInfo(name: String, birthYear: Int){ | |
self.name = name | |
self.birthYear = birthYear | |
} | |
init(name: String, birthYear: Int){ | |
self.name = name | |
self.birthYear = birthYear | |
} | |
} | |
class Customer: Person, PrivateChat, PublicChat{ | |
var id: String | |
var pw: String | |
var grade: String | |
var point: Int | |
var phone: String | |
func setInfo(name: String, birthYear: Int, id: String, pw: String, grade: String, point: Int, phone: String) { | |
self.name = name | |
self.birthYear = birthYear | |
self.id = id | |
self.pw = pw | |
self.grade = grade | |
self.point = point | |
self.phone = phone | |
} | |
func sendMessage(msg: String, sendUser: Person, toUser: Person){ | |
//연결 소켓에 의해 서버에 일반채팅 | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func sendMessageToAdmin(msg: String, sendUser: Person, toAdmin: Admin) { | |
//연결 소켓에 의해 서버에 customer를 대상으로 msg를 전송한다. | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func sendMessageToChannel(msg: String, sendUser: Person, toAdmin: Admin) { | |
//연결 소켓에 의해 서버에 Channel를 대상으로 msg를 전송한다. | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func login(id: String, pw: String){ | |
//alamofire에 의해 post 방식으로 서버에 id, pw를 전송하고 응답을 통해 | |
// if true{ | |
// 로그인화면 통과}else{ | |
// 로그인 실패화면} | |
// | |
} | |
init(name: String, birthYear: Int, id: String, pw: String, grade: String, point: Int, phone: String){ | |
self.id = id | |
self.pw = pw | |
self.grade = grade | |
self.point = point | |
self.phone = phone | |
super.init(name: name, birthYear: birthYear) | |
} | |
} | |
class Admin: Person,PrivateChat, PublicChat, RefundSMS{ | |
var id: String | |
var pw: String | |
var role: String | |
func setInfo(name: String, birthYear: Int, id: String, pw: String, role: String) { | |
self.name = name | |
self.birthYear = birthYear | |
self.id = id | |
self.pw = pw | |
self.role = role | |
} | |
func login(id: String, pw: String){ | |
//alamofire에 의해 post 방식으로 서버에 id, pw를 전송하고 응답을 통해 | |
// if true{ | |
// 로그인화면 통과}else{ | |
// 로그인 실패화면} | |
} | |
func sendMessage(msg: String, sendUser: Person, toUser: Person){ | |
//연결 소켓에 의해 서버에 일반채팅 | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func sendMessageToAdmin(msg: String, sendUser: Person, toAdmin: Admin) { | |
//연결 소켓에 의해 서버에 customer를 대상으로 msg를 전송한다. | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func sendMessageToChannel(msg: String, sendUser: Person, toAdmin: Admin) { | |
//연결 소켓에 의해 서버에 Channel를 대상으로 msg를 전송한다. | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func sendSms(msg: String, fromAdmin: Admin, toUser: Customer){ | |
//연결 소켓에 의해 서버에 일반 SMS 전송 | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
func sendSmsForRefund(msg: String, fromAdmin: Admin, toUser: Customer){ | |
//연결 소켓에 의해 서버에 환불 SMS전송 | |
//자신의 채팅창에 보낸 msg를 추가한다. | |
} | |
init(name: String, birthYear: Int, id: String, pw: String, role: String){ | |
self.id = id | |
self.pw = pw | |
self.role = role | |
super.init(name: name, birthYear: birthYear) | |
} | |
} | |
protocol Chat{ | |
func sendMessage(msg: String, sendUser: Person, toUser: Person) | |
} | |
protocol PrivateChat: Chat{ | |
func sendMessageToAdmin(msg: String, sendUser: Person, toAdmin: Admin) | |
} | |
protocol PublicChat: Chat{ | |
func sendMessageToChannel(msg: String, sendUser: Person, toAdmin: Admin) | |
} | |
protocol SMS{ | |
func sendSms(msg: String, fromAdmin: Admin, toUser: Customer) | |
} | |
protocol RefundSMS: SMS{ | |
func sendSmsForRefund(msg: String, fromAdmin: Admin, toUser: Customer) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment