Başka bir paradigma lehine OOP'nin aşağı tarafındaki korkunç bir makaleyi okurken çok fazla hata bulamadığım bir örneğe girdim.
Yazarın argümanlarına açık olmak istiyorum ve teorik olarak puanlarını anlayabilsem de, özellikle bir örnek, bir FP dilinde nasıl daha iyi uygulanacağını hayal etmeye çalışırken zorlanıyorum.
// Consider the case where “SimpleProductManager” is a child of
// “ProductManager”:
public class SimpleProductManager implements ProductManager {
private List products;
public List getProducts() {
return products;
}
public void increasePrice(int percentage) {
if (products != null) {
for (Product product : products) {
double newPrice = product.getPrice().doubleValue() *
(100 + percentage)/100;
product.setPrice(newPrice);
}
}
}
public void setProducts(List products) {
this.products = products;
}
}
// There are 3 behaviors here:
getProducts()
increasePrice()
setProducts()
// Is there any rational reason why these 3 behaviors should be linked to
// the fact that in my data hierarchy I want “SimpleProductManager” to be
// a child of “ProductManager”? I can not think of any. I do not want the
// behavior of my code linked together with my definition of my data-type
// hierarchy, and yet in OOP I have no choice: all methods must go inside
// of a class, and the class declaration is also where I declare my
// data-type hierarchy:
public class SimpleProductManager implements ProductManager
// This is a disaster.
Yazarın "Bu 3 davranışın veri hiyerarşisine bağlanmasının mantıklı bir nedeni var mı?"
Özellikle sorduğum şey, bu örneğin bir FP dilinde nasıl modelleneceği / programlanacağı (Gerçek kod, teorik olarak değil)?