Skip to content

Instantly share code, notes, and snippets.

@philographer
Created August 7, 2016 08:45
Show Gist options
  • Save philographer/95fb2e3929a2d6e881e46f52b37fe94f to your computer and use it in GitHub Desktop.
Save philographer/95fb2e3929a2d6e881e46f52b37fe94f to your computer and use it in GitHub Desktop.
SW Maestro 7기 연수생 2차 Front End 과제
//
// 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