smalltalk
Object subclass: User [
setUsername: aUsername password: aPassword [
username := aUsername.
password := aPassword.
]
checkCredentialsFor: aUsername password: aPassword [
^ username = aUsername and: [ password = aPassword ]
]
]
Object subclass: DatabaseAccess [
initialize [
users := Dictionary new.
]
addUser: aUser [
users at: aUser getUsername put: aUser getPassword.
]
authenticateUser: aUser [
^ aUser checkCredentialsFor: (users at: aUser getUsername)
]
]
databaseAccess := DatabaseAccess new.
user := User new setUsername: 'admin' password: '123456'.
databaseAccess addUser: user.
user checkCredentialsFor: 'admin' password: '123456'.
databaseAccess authenticateUser: user