动机
允许子类可以覆盖如何get方法,并且这样的话它更加的支持灵活的管理,例如延迟加载
当你有个数据项需要进行添加数据或行为
将数据项转换为对象
class Order...{
private String _customer;
public Order (String customer) {
_customer = customer;
}
}
to
class Order...{
public Order (String customer) {
_customer = new Customer(customer);
}
}
class Customer {
public Customer (String name) {
_name = name;
}
}
动机
简单的数据对象并不简单
你有个类拥有很多单个对象,这些对象需要用一个单独的对象替代
将这个对象转换为引用对象
class Order...{
public Order (String customer) {
_customer = new Customer(customer);
}
}
class Customer {
public Customer (String name) {
_name = name;
}
}
to
//Use Factory Method
//使用工厂方法
class Customer...
static void loadCustomers() {
new Customer ("Lemon Car Hire").store();
new Customer ("Associated Coffee Machines").store();
new Customer ("Bilston Gasworks").store();
}
private void store() {
_instances.put(this.getName(), this);
}
public static Customer create (String name) {
return (Customer) _instances.get(name);
}
动机
引用对象是类似于消费者或者账单这样的对象,每个对象代表这一类对象在一个真实的世界,并使用对象表示来测试它们是否相同
你有一个有一个引用对象是很小,不变,难以管理的
将其转换为值对象
new Currency("USD").equals(new Currency("USD")) // returns false
to
new Currency("USD").equals(new Currency("USD")) // now returns true
动机
使用引用对象是变得越来月复杂,并且引用对象是不变和单一的。微服务架构 云计算尤其在分布式和并发系统中
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-12.html
经过选举成为合法总统